Inleiding
In deze tutorial bouw je metrevolution/laravel-console-starter een Laravel-applicatie met custom artisan-commands.
De voordelen van deze starter kit:
- Snelle setup — Je begint direct met het ontwikkelen van consoleapps, zonder complexe configuratie
- Laravel-ecosysteem — Je gebruikt de rijke functionaliteit van Laravel, zoals taskscheduling, databases en notificaties
- Artisan-commands — Met het krachtige Artisan-systeem van Laravel maak en beheer je eenvoudig eigen commands
- Testbaarheid — Je schrijft tests voor je commands met het testframework van Laravel
Vereisten
Installeer de volgende software.- PHP
^8.3 - Composer (https://getcomposer.org/)
- Laravel Installer (
composer global require laravel/installer)
Het project opzetten
Een nieuw project maken
my-app wordt aangemaakt en de basisstructuur van de consoleapp wordt opgezet.Tijdens de installatie wordt het volgende automatisch uitgevoerd.- Het genereren van een
.env-bestand op basis van.env.example - Het instellen van de applicatiesleutel met
php artisan key:generate
De omgevingsconfiguratie controleren
MAIL_MAILER=log).Wil je echt e-mails versturen, configureer dan in het .env-bestand een service zoals Mailgun, Postmark of SES.Een consolecommand maken
Het command genereren
make:command.YourCommandName— De klassenaam van het te maken command (bijvoorbeeldSendDailyReport)your:command— De aanroepnaam van het command (bijvoorbeeldreport:send-daily)
app/Console/Commands/YourCommandName.php wordt gegenereerd.Het command implementeren
$signature definieer je de aanroepnaam van het command en in de handle()-method schrijf je de logica.Het command uitvoeren
storage/logs/laravel.log en in de console.Taskscheduling met GitHub Actions
Met GitHub Actions voer je commands periodiek uit zonder cronjobs op een server.Het workflowbestand bekijken
.github/workflows/cron.yml.Het command aanpassen
php artisan inspire door je eigen command.Het schema aanpassen
cron-expressie om de uitvoeringsfrequentie in te stellen.Gevoelige gegevens beheren met secrets
Notificaties
Je kunt de resultaten of fouten van commands melden via e-mail, Slack en meer.Een notificatieklasse maken
app/Notifications/TaskCompleted.php wordt gegenereerd.Notificatiekanalen configureren
Een notificatie versturen vanuit een command
Praktische applicatievoorbeelden
Voorbeeld 1: uptime-monitoring van websites met Slack-alerts
Een command dat controleert of websites online zijn en bij een gedetecteerd probleem een alert naar Slack stuurt.Het Slack-notificatiekanaal installeren
Het command en de notificatie maken
Slack configureren
.env.config/services.php bij.De notificatie implementeren
app/Notifications/WebsiteDown.php.Het command implementeren
app/Console/Commands/MonitorWebsites.php.Schedulen met GitHub Actions
.github/workflows/cron.yml bij.Voorbeeld 2: cryptoportfolio-updates met Discord-notificaties
Een command dat cryptovalutaprijzen ophaalt via de CoinGecko-API en updates verstuurt via een Discord-webhook.Het Discord-notificatiekanaal installeren
Het command en de notificatie maken
Discord configureren
.env.config/services.php bij.Het command implementeren en uitvoeren
Voorbeeld 3: websitecontent scrapen met e-mailnotificaties
Een command dat content van een website scrapet en het resultaat per e-mail verstuurt.Het command en de notificatie maken
E-mail configureren
.env-bestand.Het command implementeren en uitvoeren
Volgende stappen
Je hebt nu de basis geleerd van Laravel-consoleapplicaties metrevolution/laravel-console-starter.
Om je verder te verdiepen:
- Verken de Laravel-documentatie — Bekijk in de officiële Laravel-documentatie welke functies je consoleapp kunnen versterken
- Implementeer tests — Schrijf tests voor je commands met het testframework van Laravel en waarborg de betrouwbaarheid
- Overweeg pakketontwikkeling — Maak je vergelijkbare commands in meerdere projecten, overweeg dan om ze te publiceren als herbruikbaar Laravel-pakket
- Blijf op de hoogte — Volg Laravel News en de officiële blog om best practices bij te houden