Comandos Artisan personalizados

Básico
Laravel
Laravel
Actualizado: 27/03/2026

Artisan y los comandos

Artisan es la interfaz de línea de comandos de Laravel. Comandos como make:controller, migrate o queue:work son comandos Artisan. Puedes crear los tuyos para tareas de mantenimiento, importaciones o scripts internos.

php artisan make:command SyncInventory

El archivo se genera en app/Console/Commands/. La firma del comando define el nombre y los argumentos u opciones:

namespace App\Console\Commands;

use Illuminate\Console\Command;

class SyncInventory extends Command
{
    protected $signature = 'inventory:sync {product_id?} {--dry-run}';

    protected $description = 'Sincroniza el inventario desde el almacén';

    public function handle(): int
    {
        $productId = $this->argument('product_id');
        $dryRun = $this->option('dry-run');

        $this->info('Sincronizando inventario...');
        // Lógica del comando
        $this->info('Completado.');

        return Command::SUCCESS;
    }
}

Argumentos con ? son opcionales. Las opciones se declaran con --nombre y se leen con $this->option('nombre').

Escribir salida

Métodos útiles para interactuar con el usuario:

$this->info('Mensaje informativo');
$this->error('Mensaje de error');
$this->warn('Advertencia');
$this->table(['Columna 1', 'Columna 2'], $datos);

Para solicitar entrada:

$valor = $this->ask('¿Introduce el valor?');
$confirm = $this->confirm('¿Continuar?');

Registrar comandos

Las clases bajo app/Console/Commands/ que extienden Illuminate\Console\Command se descubren y registran automáticamente en aplicaciones actuales (no hace falta listarlas a mano salvo casos muy concretos).

Para comandos definidos como cierres (closures) o registro explícito, el proyecto suele usar routes/console.php (junto con la planificación del Scheduler en el mismo archivo o en bootstrap/app.php, según la plantilla).

Las plantillas antiguas exponían un método commands() en app/Console/Kernel.php; en proyectos nuevos ese archivo puede no existir: confía en la auto-descubrimiento de comandos y en routes/console.php.

Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Laravel es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Laravel

Explora más contenido relacionado con Laravel y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Crear comandos Artisan personalizados para automatizar tareas desde la línea de comandos.

Cursos que incluyen esta lección

Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje