Cómo acceder a argumentos y opciones de comandos en Laravel

  • Publicado el 19 diciembre, 2024
  • Palabras: 67

¿Necesitas trabajar con argumentos y opciones de comandos en tus comandos Artisan? ¡Laravel te lo pone muy fácil!

Cómo acceder a argumentos y opciones de comandos en Laravel

#Métodos básicos de acceso

Obtener valores individuales con "argument" y "option":

 

// Get a single argument
$userId = $this->argument('user');

// Get a single option
$queueName = $this->option('queue');

 

#Obtener todos los valores

Recuperar todos los argumentos u opciones como arrays:

 

// Get all arguments
$arguments = $this->arguments();

// Get all options
$options = $this->options();

 

#Ejemplo práctico

A continuación se muestra un comando de implementación práctico que demuestra varias formas de acceder a las entradas:

 

class DeployApplication extends Command
{
    protected $signature = 'deploy 
        {environment : The deployment environment}
        {--branch= : The git branch to deploy}
        {--F|force : Force deployment without confirmations}
        {--notify=* : Notification channels}';

    public function handle()
    {
        // Individual access
        $environment = $this->argument('environment');
        $branch = $this->option('branch') ?? 'main';
        $force = $this->option('force');
        
        // Dump all inputs for debugging
        if ($this->option('verbose')) {
            $this->table(
                ['Type', 'Values'],
                [
                    ['Arguments', json_encode($this->arguments())],
                    ['Options', json_encode($this->options())]
                ]
            );
        }

        // Use the values
        $this->info("Deploying to {$environment}");
        $this->info("Branch: {$branch}");
        
        if (!$force && !$this->confirm('Continue with deployment?')) {
            return;
        }

        // Handle notifications
        foreach ($this->option('notify') as $channel) {
            $this->info("Sending notification via {$channel}");
        }

        // Deployment logic here...
    }
}

 

Ejemplos de uso:

 

# uso básico
php artisan deploy production --branch=main

# Con múltiples canales de notificación
php artisan deploy staging --branch=feature/new-api --notify=slack --notify=email

# Forzar el despligue
php artisan deploy production -F

# Mostrar todas la entradas (verbose mode)
php artisan deploy production -v

 

La capacidad de acceder fácilmente a los argumentos y opciones de los comandos le ayuda a crear comandos de consola más flexibles y potentes.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

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