Come creare un comando Artisan PHP personalizzato in Laravel

Artisan fornisce una serie di comandi utili per la produzione dei progetti laravel.
Il framework Laravel e Artisan sono predisposti per la creazione di nuovi comandi Artisan, scrivendo codice programma in linguaggio PHP.
In questo articolo andiamo a vedere come definire e scrivere un nuovo comando Artisan.
Tempo di lettura stimato: 3 minuti
Artisan di Laravel 11
Per creare un nuovo comando Artisan, usiamo il comando
php artisan make:command <command-name>
Questo comando creerà una nuova classe di comandi all’interno della directory app/Console/Commands
. Nel caso in cui la directory non esista nel nostro progetto laravel, verrà creata automaticamente la prima volta che eseguiamo il comando artisan make:command
.
Artisan è una command line
utility di Laravel
, ampiamente utilizzata per impostare migrations
, routes
, queue
, controllers
e molto altro.
Per un elenco completo delle attività che Artisan Laravel può fare, esegui il comando seguente all’interno della directory del progetto Laravel:
php artisan
Make è un comando importante in Artisan, utilizzato per creare comandi Artisan personalizzati.
make
make:channel Create a new channel class
make:chart Creates a new chart
make:command Create a new Artisan command
make:controller Create a new controller class
make:event Create a new event class
make:exception Create a new custom exception class
make:factory Create a new model factory
make:job Create a new job class
make:listener Create a new event listener class
make:mail Create a new email class
make:middleware Create a new middleware class
make:migration Create a new migration file
make:model Create a new Eloquent model class
make:notification Create a new notification class
make:observer Create a new observer class
make:policy Create a new policy class
make:provider Create a new service provider class
make:request Create a new form request class
make:resource Create a new resource
make:rule Create a new validation rule
make:seeder Create a new seeder class
make:test Create a new test class
I comandi artisan Laravel possono essere anche schedulati nel CRON.
Artisan Laravel le origini
Se osserviamo il sorgente dell’applicazione Artisan nella directory Illuminate\Console
, noterai che la classe stessa estende Symfony\Component\Console\Application
.
Sebbene Artisan utilizzi il componente console più conosciuto di Symfony, ha ancora alcuni metodi comuni con alias simili a Laravel. Avrai comunque la sensazione di sviluppare in modo nativo con Laravel.
Comando personalizzato Artisan
Usando Laravel, puoi facilmente creare command
di Artisan personalizzati. Basta digitare il seguente comando nella Console Artisan del tuo progetto per creare un nuovo comando personalizzato (il nome del comando segue il make:command
):
php artisan make:command <command_name>
Ora apri il tuo terminale ed esegui il seguente comando.
php artisan make:command CreateEmployee
Una volta eseguito completamente il comando sopra menzionato, otterrai un file nella directory app/console/Commands con il nome “CreateEmployee”. Ecco il codice:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class CreateEmployee extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $user = 'app:CreateEmployee';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
}
}
Ora è il momento di aggiornare il comando Laravel appena creato, andremo a scrivere il codice nel metodo handle()
, eventuali parametri nella $signature
e la descrizione in $description
.
Nel metodo handle definiremo $user per creare l’amministratore e $description per creare un account utente con ruolo di amministratore. Definendo questi, dobbiamo anche aggiornare il campo ruolo nella tabella utenti.
Migration
Creiamo prima le tabelle di migrazione e il modello con il seguente comando:
php artisan make:model Employee -m
In questo modo verrà creato il Modello Employee
e la migration per la tabella employees
. Ora controlla la cartella di migrazione e vedrai la tabella di migrazione appena creata. Puoi anche customizzare le funzioni up()
e down()
per tua comodità.
Model
Ora dovrai aggiornare il model con il seguente codice:
protected $fillable = [
'name', 'email', 'password', 'role'
];
Successivamente, puoi aggiornare handle()
in base ai requisiti desiderati:
$newuser = [
'name' => 'AYX',
'email' => 'WYZ@domain.com',
'password' => bcrypt('secret'),
'role' => 'Manager'
];
Letture Correlate
Ercole Palmeri