Qué es Artisan
Artisan es la herramienta de interfaz de línea de comandos (CLI) que se incluye con Laravel. Existe como scriptartisan en la raíz del proyecto y ofrece numerosos comandos que agilizan el desarrollo y la operación.
Para consultar la lista de comandos disponibles utiliza el comando list.
help.
Si utilizas Laravel Sail, usa
sail artisan en lugar de php artisan.
Los comandos se ejecutarán dentro del contenedor Docker.Tinker
Laravel Tinker es un entorno REPL que permite manipular de forma interactiva desde la línea de comandos toda la aplicación: modelos Eloquent, jobs, eventos, etc.Creación de comandos personalizados
Generar un comando
Conmake:command generas la plantilla de una clase de comando.
app/Console/Commands/ImportProducts.php.
Estructura básica de un comando
La clase generada tiene tres elementos principales:$signature, $description y handle().
En Laravel 13 también se puede utilizar la forma con atributos PHP.
Definir argumentos y opciones
En$signature se define, todo junto, el nombre del comando, los argumentos y las opciones.
Obtener argumentos y opciones
Dentro del métodohandle() se obtienen los valores con argument() y option().
input() — accesores tipados
Con el método input() puedes obtener los argumentos y opciones del comando con los mismos accesores tipados que en una petición HTTP.
Interacción con el usuario
Salida de mensajes
Hay métodos para imprimir mensajes en color en la consola.Preguntar al usuario
Se puede recibir entrada del usuario de forma interactiva.Barra de progreso
Puedes mostrar el progreso de forma clara al procesar grandes cantidades de datos.Casos de uso prácticos
Comando de importación de datos
Ejemplo práctico de un comando que importa datos de productos desde un archivo CSV.1
Generar el comando
2
Implementar el comando
3
Ejecutar el comando
Comando de mantenimiento periódico
Ejemplo de un comando de mantenimiento periódico, como eliminar datos antiguos.Combinación con la ejecución programada
Los comandos que crees se pueden ejecutar de forma programada enroutes/console.php.
Para más detalles, consulta Programación de tareas.
Pruebas de comandos
Con las funcionalidades de testing de Laravel puedes verificar el comportamiento de los comandos Artisan.Ejemplos de métodos de aserción disponibles con
artisan():Comando dev
El comando Artisan dev arranca varios procesos necesarios para el desarrollo local en una única ventana de terminal. Por defecto se ejecutan en paralelo: el servidor de desarrollo de PHP, el worker de la cola, la monitorización de logs con Pail y la compilación de assets de Vite.
concurrently para gestionar los procesos. A cada proceso se le asigna una etiqueta y un color, para que puedas distinguirlos fácilmente en la salida del terminal. Si alguno de los procesos falla, todos los demás también se detienen automáticamente.
Los procesos que se ejecutan por defecto son los siguientes.
El proceso
vite detecta automáticamente el gestor de paquetes de Node que estés usando (npm, pnpm, Yarn, Bun) y utiliza el comando de ejecución adecuado.Personalizar los procesos de dev
Puedes personalizar los procesos que ejecuta el comando dev mediante la clase DevCommands. Normalmente se registran dentro del método boot del AppServiceProvider de la aplicación. El método register recibe la cadena de comando y, opcionalmente, un nombre de proceso.
artisan, que antepone automáticamente php artisan.
node antepone el comando de ejecución del gestor de paquetes detectado (por ejemplo, npm run), y nodeExec antepone el comando exec del gestor de paquetes (por ejemplo, npx).
server para que use otro puerto.
blue, purple, pink, orange, green y yellow. También puedes pasarle un color hex personalizado al método color.
dev registrados sin arrancarlos, usa el comando dev:list.
Filtrar los procesos de dev
Con el método only puedes indicar que al ejecutar el comando dev solo arranquen determinados procesos. De la misma manera, con except puedes excluir procesos concretos.