Introduzione
In questo tutorial costruirai un’applicazione Laravel con comandi Artisan personalizzati usandorevolution/laravel-console-starter.
I vantaggi di usare questo starter kit:
- Setup rapido — puoi iniziare subito lo sviluppo di app console senza configurazioni complesse
- Ecosistema Laravel — puoi usare le funzionalità di Laravel come task scheduling, database e notifiche
- Comandi Artisan — con il potente sistema Artisan di Laravel puoi creare e gestire facilmente i tuoi comandi
- Facilità di test — puoi scrivere test per i comandi con il framework di testing di Laravel
Prerequisiti
Installa il seguente software.- PHP
^8.3 - Composer (https://getcomposer.org/)
- Laravel Installer (
composer global require laravel/installer)
Setup del progetto
Crea un nuovo progetto
my-app e configurata la struttura base dell’app console.All’installazione vengono eseguite automaticamente le seguenti operazioni.- Generazione del file
.enva partire da.env.example - Impostazione dell’application key con
php artisan key:generate
Verifica la configurazione dell'ambiente
MAIL_MAILER=log).Se ti serve un vero invio di email, configura nel file .env servizi come Mailgun, Postmark o SES.Creazione di un comando console
Genera un comando
make:command di Artisan.YourCommandName— nome della classe del comando da creare (es.:SendDailyReport)your:command— nome invocabile del comando (es.:report:send-daily)
app/Console/Commands/YourCommandName.php.Implementa il comando
$signature definisci il nome invocabile del comando e scrivi la logica nel metodo handle().Esegui il comando
storage/logs/laravel.log e in console.Task scheduling con GitHub Actions
Usando GitHub Actions puoi eseguire comandi in modo periodico senza bisogno di cron sul server.Controlla il file workflow
.github/workflows/cron.yml già preconfigurato.Cambia il comando
php artisan inspire con il tuo comando.Regola la pianificazione
cron per impostare la frequenza.Gestisci le informazioni sensibili come secret
Notifiche
Puoi notificare via email, Slack, ecc. il risultato o gli errori di un comando.Crea una classe di notifica
app/Notifications/TaskCompleted.php.Configura il canale di notifica
Invia la notifica dal comando
Esempi pratici di applicazioni
Esempio 1: monitoraggio uptime di siti web e alert Slack
Un comando che verifica se un sito è online e invia un alert su Slack in caso di problemi.Installa il canale di notifica Slack
Crea comando e notifica
Configura Slack
.env.config/services.php.Implementa la notifica
app/Notifications/WebsiteDown.php.Implementa il comando
app/Console/Commands/MonitorWebsites.php.Schedula con GitHub Actions
.github/workflows/cron.yml.Esempio 2: aggiornamento portafoglio crypto e notifica Discord
Un comando che recupera i prezzi delle crypto dall’API CoinGecko e invia gli aggiornamenti tramite webhook Discord.Installa il canale di notifica Discord
Crea comando e notifica
Configura Discord
.env.config/services.php.Implementa ed esegui il comando
Esempio 3: scraping di contenuti dal web e notifica via email
Un comando che effettua scraping di contenuti da un sito e invia i risultati via email.Crea comando e notifica
Configura la mail
.env.Implementa ed esegui il comando
Passi successivi
Ora conosci le basi per costruire un’applicazione console Laravel conrevolution/laravel-console-starter.
Per approfondire:
- Esplora la documentazione Laravel — verifica sulla documentazione ufficiale Laravel le funzionalità che possono potenziare la tua app console
- Aggiungi test — scrivi test per i comandi con il framework di testing di Laravel per garantirne l’affidabilità
- Valuta lo sviluppo di pacchetti — se crei comandi simili in più progetti, valuta di pubblicarli come pacchetto Laravel riutilizzabile
- Segui le novità — segui Laravel News e il blog ufficiale per restare aggiornato sulle best practice