Einführung
In diesem Tutorial bauen Sie mitrevolution/laravel-console-starter eine Laravel-Anwendung mit eigenen Artisan-Kommandos auf.
Vorteile dieses Starter-Kits:
- Schnelle Einrichtung – Ohne komplizierte Konfiguration können Sie sofort mit der Entwicklung von Konsolen-Anwendungen beginnen.
- Laravel-Ökosystem – Sie können Laravels reichhaltige Funktionen wie Task-Scheduling, Datenbank und Notifications nutzen.
- Artisan-Kommandos – Über das leistungsfähige Artisan-System von Laravel erstellen und verwalten Sie eigene Kommandos einfach.
- Testbarkeit – Sie können Tests für Ihre Kommandos mit dem Test-Framework von Laravel schreiben.
Voraussetzungen
Installieren Sie die folgende Software.- PHP
^8.3 - Composer (https://getcomposer.org/)
- Laravel Installer (
composer global require laravel/installer)
Projekt einrichten
Neues Projekt erstellen
Führen Sie im Terminal folgenden Befehl aus.Das Verzeichnis
my-app wird angelegt und die Grundstruktur der Konsolen-Anwendung eingerichtet.Automatisch werden bei der Installation ausgeführt:- Erzeugung der
.env-Datei aus.env.example - Setzen des Application Keys per
php artisan key:generate
Konsolen-Kommando erstellen
Kommando generieren
Erstellen Sie mit dem Artisan-Kommando
make:command ein neues Kommando.YourCommandName– Klassenname des zu erstellenden Kommandos (z. B.SendDailyReport)your:command– Aufrufname des Kommandos (z. B.report:send-daily)
app/Console/Commands/YourCommandName.php erzeugt.Kommando implementieren
Bearbeiten Sie die erzeugte Datei und implementieren Sie die Logik. Das folgende Beispiel zeigt ein Hello-World-Kommando.Über
$signature definieren Sie den Aufrufnamen des Kommandos, in der Methode handle() schreiben Sie die Logik.Task-Scheduling mit GitHub Actions
Mit GitHub Actions können Sie Kommandos regelmäßig ausführen, ohne einen Cronjob auf einem Server einrichten zu müssen.Workflow-Datei prüfen
Im Starter-Kit ist die Datei
.github/workflows/cron.yml bereits vorkonfiguriert enthalten.Kommando anpassen
Ersetzen Sie Für mehrere Kommandos:
php artisan inspire durch Ihr eigenes Kommando.Zeitplan anpassen
Passen Sie den
cron-Ausdruck an, um die Ausführungshäufigkeit festzulegen.| cron-Ausdruck | Ausführungszeitpunkt |
|---|---|
0 0 * * * | Täglich 00:00 UTC |
0 */6 * * * | Alle 6 Stunden |
0 0 * * 1 | Jeden Montag um 00:00 |
Notification-Funktionen
Sie können die Ergebnisse oder Fehler eines Kommandos per Mail, Slack usw. benachrichtigen.Details siehe Laravel-Notification-Dokumentation.
Praktische Anwendungsbeispiele
Beispiel 1: Verfügbarkeitsüberwachung von Websites mit Slack-Alerts
Ein Kommando, das prüft, ob Websites online sind, und bei Problemen einen Alert an Slack sendet.Slack konfigurieren
.env die Slack-Webhook-URL hinzu.config/services.php.Beispiel 2: Kryptoportfolio-Update mit Discord-Benachrichtigung
Ein Kommando, das über die CoinGecko-API Kryptowährungskurse abruft und Updates per Discord-Webhook sendet.Discord konfigurieren
Fügen Sie in Aktualisieren Sie
.env die Discord-Webhook-URL hinzu.config/services.php.Kommando implementieren und ausführen
Für die Detail-Implementierung siehe das Tutorial im GitHub-Repository.
Beispiel 3: Website-Content-Scraping mit Mail-Benachrichtigung
Ein Kommando, das Inhalte von einer Website scrapt und das Ergebnis per Mail versendet.Nächste Schritte
Sie haben die Grundlagen einer Laravel-Konsolen-Anwendung mitrevolution/laravel-console-starter kennengelernt.
Zum weiteren Vertiefen:
- Laravel-Dokumentation erkunden – In der offiziellen Laravel-Dokumentation finden Sie Funktionen, mit denen Sie Ihre Konsolen-Anwendung erweitern können.
- Tests implementieren – Schreiben Sie mit dem Test-Framework von Laravel Tests für Ihre Kommandos, um Verlässlichkeit zu gewährleisten.
- Paket-Entwicklung erwägen – Wenn Sie in mehreren Projekten ähnliche Kommandos benötigen, ziehen Sie in Betracht, sie als wiederverwendbares Laravel-Paket zu veröffentlichen.
- Auf dem Laufenden bleiben – Folgen Sie Laravel News und dem offiziellen Blog, um Best Practices im Blick zu behalten.