Link Search Menu Expand Document

5.5. Artisan, la consola que mola

Laravel viene de serie con una utilidad de consola de comandos llamada Artisan. Con Artisan se automatizan montones de tareas habituales del trabajo con Laravel, así que acostúmbrate a tener siempre abierto un terminal de texto en el directorio raíz de tu aplicación.

En esta sección vamos a aprender a utilizar los comandos básicos de Artisan.

5.5.1. ¿Qué es Artisan y cómo se utiliza?

Como hemos dicho, Artisan es una herramienta de consola, escrita en PHP, que viene con Laravel para ayudarte a realizar tareas cotidianas en tu aplicación de forma automatizada.

Algunas de esas tareas que automatiza Artisan son:

  • Generar esqueletos de controladores y modelos.
  • Crear migraciones de bases de datos (para manipular la estructura de las tablas, como enseguida veremos).
  • Rellenar la BD con datos de prueba.
  • Hacer el enrutamiento.
  • Configurar la aplicación.
  • Crear baterías de pruebas.
  • Gestionar la caché de Laravel (una memoria intermedia generada por Laravel que hace que tu aplicación se cargue más rápido).

Y así otro montón de cosas.

No te preocupes si aún no entiendes qué significan algunas de estas cosas. Lo iremos viendo todo poco a poco. Lo importante ahora es que comprendas la tremenda utilidad de Artisan en el trabajo cotidiano con Laravel y que aprendas lo básico de su sintaxis.

5.5.2. Un ejemplo práctico: crear un controlador

Veamos cómo funciona Artisan con un ejemplo.

Supongamos que quieres crear un controlador. Para ello, existen dos maneras:

  1. A mano. Nos vamos al directorio /app/Http/Controllers y creamos un archivo llamado, digamos, HolaController.php. Luego lo rellenamos con el esqueleto de un controlador vacío, copiando y pegando de otro controlador existente y eliminando todo lo que no nos haga falta.

    Este método, obviamente, es lento, farragoso y resulta fácil que cometamos algún error.

  2. Con Artisan. Simplemente, tecleamos este comando en el directorio raíz de nuestra aplicación:

    $ php artisan make:controller HolaController
    

    ¡Hemos terminado! Artisan creará por nosotros el archivo /app/Http/Controllers/HolaController.php y lo rellenará con el esqueleto de un controlador vacío y sintácticamente correcto.

5.5.3. Artisan con Docker

Si utilizas Laravel con una máquina virtual Docker, es importante que recuerdes esto: Artisan solo se puede ejecutar dentro de tu máquina virtual. No es un comando que exista fuera de tu servidor.

Las primeras veces se te olvidará. Intentarás ejecutar comandos de Artisan en tu máquina real y te dará un error. No te apures: nos ha ocurrido a todos.

Con Docker puedes abrir un terminal en tu máquina virtual con este comando:

$ docker exec -it <id-del-contenedor> bash

(Si desconoces el id de tu contenedor, puedes averiguarlo con el comando $ docker container ls)

A partir de ahí, puedes lanzar comandos php artisan sin problemas

Si trabajas con Sail, esto es aún más sencillo, porque sail permite ejecutar comandos directamente en la máquina virtual Docker Sail.

Simplemente escribe:

$ sail php artisan <comando-de-artisan>

O más sencillo aún con esta abreviatura:

$ sail artisan <comando-de-artisan>

De ahora en adelante, cuando veas un comando de artisan en este manual, recuerda que debes sustituir “php” por “sail” si estás trabajando con Docker Sail.

5.5.4. Comandos principales de Artisan

(Recuerda: sustituye php artisan por sail artisan si estás usando Docker Sail)

Una buena forma de empezar con Artisan es teclear este comando:

$ php artisan list

Ya te imaginas lo que hace, ¿verdad?

Por si acaso andas un poco despistado/a hoy, te lo cuento yo: Artisan te mostrará una lista con todos los comandos válidos en tu instalación de Laravel. Esto puede variar según tu versión de Laravel y los componentes que tengas instalados.

En un primer momento, estos son los comandos que más vas a utilizar (cuando te conviertas en un experto/a en Laravel, irán llegando otros por pura necesidad):

  • php artisan db:migrate –> Para hacer migraciones (crear la estructura de nuestra base de datos).
  • php artisan db:seed –> Para llenar de datos predefinidos nuestra base de datos.
  • php artisan make:migration –> Crea una migración (para crear la estructura de la base de datos).
  • php artisan make:seeder –> Crea un seeder (para rellenar con datos las tablas).
  • php artisan make:controller –> Para crear un controlador.
  • php artisan make:model –> Para crear un modelo.
  • php artisan route:list –> Muestra todas las rutas definidas en el enrutador.