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()enapp/Console/Kernel.php; en proyectos nuevos ese archivo puede no existir: confía en la auto-descubrimiento de comandos y enroutes/console.php.
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