Che cos’è Artisan
Artisan è lo strumento a riga di comando (CLI) incluso in Laravel. Esiste come scriptartisan nella radice del progetto e fornisce numerosi comandi che rendono più efficienti sviluppo e operatività.
Per vedere l’elenco dei comandi disponibili usa il comando list.
help davanti.
Se usi Laravel Sail, al posto di
php artisan usa sail artisan.
I comandi vengono eseguiti dentro il container Docker.Tinker
Laravel Tinker è un ambiente REPL che ti permette di interagire da riga di comando con l’intera applicazione: modelli Eloquent, job, eventi ecc.Creare comandi personalizzati
Generare un comando
Conmake:command generi lo scheletro di una classe comando.
app/Console/Commands/ImportProducts.php.
Struttura di base del comando
La classe comando generata ha tre elementi principali:$signature, $description e handle().
In Laravel 13 è disponibile anche la sintassi con attributi PHP.
Definire argomenti e opzioni
In$signature definisci in un solo posto nome del comando, argomenti e opzioni.
Ottenere argomenti e opzioni
Dentrohandle() recupera i valori con argument() e option().
input() — accessor tipizzati
Con il metodo input() puoi accedere ad argomenti e opzioni del comando tramite accessor tipizzati come quelli delle richieste HTTP.
Interazione con l’utente
Stampare messaggi
Ci sono metodi dedicati per stampare messaggi colorati sulla console.Chiedere all’utente
Puoi accettare input interattivo dall’utente.Barra di avanzamento
Puoi mostrare in modo chiaro l’avanzamento durante l’elaborazione di grandi quantità di dati.Casi d’uso pratici
Comando di importazione dati
Esempio pratico di un comando che importa dati prodotto da un file CSV.1
Genera il comando
2
Implementa il comando
3
Esegui il comando
Comando di manutenzione periodica
Esempio di un comando di manutenzione periodica, come la cancellazione di dati vecchi.Combinazione con lo scheduler
Il comando creato può essere schedulato inroutes/console.php.
Per i dettagli vedi Task scheduling.
Test dei comandi
Con le funzionalità di test di Laravel puoi verificare il comportamento dei comandi Artisan.Esempi di asserzioni utilizzabili con il metodo
artisan():Il comando dev
Il comando Artisan dev avvia in un’unica finestra del terminale i vari processi necessari per lo sviluppo locale. Per default esegue in parallelo server di sviluppo PHP, queue worker, monitoraggio dei log con Pail e compilazione degli asset di Vite.
concurrently per gestire i processi. Ogni processo è etichettato e colorato, così puoi distinguerlo facilmente nell’output del terminale. Se un processo fallisce, tutti gli altri vengono fermati automaticamente.
I processi eseguiti per default sono i seguenti.
Il processo
vite rileva automaticamente il package manager Node in uso (npm, pnpm, Yarn, Bun) e usa il comando appropriato.Personalizzare i processi di dev
Puoi personalizzare i processi eseguiti dal comando dev con la classe DevCommands. Di solito la registrazione avviene nel metodo boot dell’AppServiceProvider dell’applicazione. Il metodo register accetta la stringa del comando e un nome di processo opzionale.
artisan, che antepone automaticamente php artisan.
node antepone il comando di esecuzione del package manager rilevato (es. npm run), mentre nodeExec antepone il comando exec (es. npx).
blue, purple, pink, orange, green e yellow. Puoi anche passare un colore hex personalizzato al metodo color.
dev registrati senza avviarli, usa il comando dev:list.
Filtrare i processi di dev
Con il metodo only puoi indicare di avviare solo determinati processi quando esegui dev. Analogamente, con except puoi escludere processi specifici.