Prompts interactivos en Laravel: guía sobre PromptsForMissingInput
- Publicado el 18 diciembre, 2024
- Palabras: 57
¿Quieres que tus comandos Artisan sean más fáciles de usar? ¡La interfaz PromptsForMissingInput de Laravel convierte los argumentos que faltan en indicaciones interactivas! Exploremos esta elegante función.

#Implementación básica
A continuación te indicamos cómo agregar indicaciones interactivas a tu comando:
use IlluminateConsoleCommand;
use IlluminateContractsConsolePromptsForMissingInput;
class SendEmails extends Command implements PromptsForMissingInput
{
protected $signature = 'mail:send {user}';
}
#Personalización de Prompts
Puedes personalizar los mensajes de aviso:
protected function promptForMissingArgumentsUsing(): array
{
return [
'user' => '¿Qué ID de usuario debe recibir el correo?'
];
}
#Ejemplo práctico
A continuación se muestra una implementación práctica para un comando de despligue:
class DeployApplication extends Command implements PromptsForMissingInput
{
protected $signature = 'deploy
{environment}
{branch}
{--notify=}';
protected function promptForMissingArgumentsUsing(): array
{
return [
'environment' => [
'Which environment are you deploying to?',
'E.g. staging, production'
],
'branch' => fn () => search(
label: 'Select a branch to deploy:',
placeholder: 'Type to search branches...',
options: fn ($value) => $this->getGitBranches($value)
)
];
}
private function getGitBranches($search)
{
// Simulate Git branch search
$branches = [
'main' => 'main',
'develop' => 'develop',
'feature/user-auth' => 'feature/user-auth',
'hotfix/login-fix' => 'hotfix/login-fix'
];
return array_filter($branches, function($branch) use ($search) {
return str_contains($branch, $search);
});
}
public function handle()
{
$environment = $this->argument('environment');
$branch = $this->argument('branch');
$this->info("Deploying {$branch} to {$environment}...");
// Deployment logic here...
}
}
Escenarios de uso:
# Con todos los argumentos
php artisan deploy production main
# Sin argumentos (se mostrarán indicaciones)
php artisan deploy
Las indicaciones interactivas hacen que sus comandos sean más fáciles de usar y ayudan a evitar errores por falta de argumentos.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión