Cos’è Artisan
Artisan è lo strumento a riga di comando (CLI) incluso in Laravel. Esiste come scriptartisan nella root del progetto e offre molti comandi che rendono efficienti sviluppo e gestione operativa.
Per vedere l’elenco dei comandi disponibili usa list.
help.
Se usi Laravel Sail, sostituisci
php artisan con sail artisan.
I comandi verranno eseguiti nel container Docker.Tinker
Laravel Tinker è un ambiente REPL che permette di interagire in modo interattivo con l’intera applicazione — modelli Eloquent, job, eventi — da riga di comando.Creazione di comandi personalizzati
Generare un comando
Conmake:command generi lo scheletro di una classe comando.
app/Console/Commands/ImportProducts.php.
Struttura base del comando
La classe comando generata ha tre elementi principali:$signature, $description e handle().
In Laravel 13 puoi usare anche la sintassi con gli attribute PHP.
Definizione di argomenti e opzioni
In$signature definisci in un’unica stringa nome, argomenti e opzioni del comando.
Lettura di argomenti e opzioni
All’interno dihandle() usa argument() e option() per leggere i valori.
input() — accessor tipizzati
Con il metodo input() puoi leggere argomenti e opzioni con gli stessi accessor tipizzati delle richieste HTTP.
Interazione con l’utente
Emissione di messaggi
Sono disponibili metodi per emettere messaggi colorati in console.Richiesta all’utente
Puoi accettare input interattivamente dall’utente.Barra di avanzamento
Mostra chiaramente il progresso durante l’elaborazione di grandi volumi di dati.Casi d’uso pratici
Comando di importazione dati
Esempio pratico di comando che importa i dati dei prodotti da un CSV.1
Genera il comando
2
Implementa il comando
3
Esegui il comando
Comando di manutenzione periodica
Esempio di comando di manutenzione periodica che elimina i dati vecchi.Combinazione con l’esecuzione pianificata
Puoi pianificare i comandi creati inroutes/console.php.
Per i dettagli consulta Task scheduling.
Test dei comandi
Con le funzionalità di test di Laravel puoi verificare il comportamento dei comandi Artisan.Esempi di metodi di asserzione utilizzabili con
artisan():