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
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
Umgebungseinstellungen prüfen
MAIL_MAILER=log).Wenn Sie tatsächliche Mails versenden möchten, konfigurieren Sie in .env einen Dienst wie Mailgun, Postmark oder SES.Konsolen-Kommando erstellen
Kommando generieren
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
$signature definieren Sie den Aufrufnamen des Kommandos, in der Methode handle() schreiben Sie die Logik.Kommando ausführen
storage/logs/laravel.log und auf der Konsole ausgegeben.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
.github/workflows/cron.yml bereits vorkonfiguriert enthalten.Kommando anpassen
php artisan inspire durch Ihr eigenes Kommando.Zeitplan anpassen
cron-Ausdruck an, um die Ausführungshäufigkeit festzulegen.Vertrauliche Daten über Secrets verwalten
Notification-Funktionen
Sie können die Ergebnisse oder Fehler eines Kommandos per Mail, Slack usw. benachrichtigen.Notification-Klasse erstellen
app/Notifications/TaskCompleted.php erzeugt.Notification-Kanal konfigurieren
Aus dem Kommando eine Benachrichtigung versenden
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-Notification-Kanal installieren
Kommando und Notification erstellen
Slack konfigurieren
.env die Slack-Webhook-URL hinzu.config/services.php.Notification implementieren
app/Notifications/WebsiteDown.php.Kommando implementieren
app/Console/Commands/MonitorWebsites.php.Schedule mit GitHub Actions einrichten
.github/workflows/cron.yml.Beispiel 2: Kryptoportfolio-Update mit Discord-Benachrichtigung
Ein Kommando, das über die CoinGecko-API Kryptowährungskurse abruft und Updates per Discord-Webhook sendet.Discord-Notification-Kanal installieren
Kommando und Notification erstellen
Discord konfigurieren
.env die Discord-Webhook-URL hinzu.config/services.php.Kommando implementieren und ausführen
Beispiel 3: Website-Content-Scraping mit Mail-Benachrichtigung
Ein Kommando, das Inhalte von einer Website scrapt und das Ergebnis per Mail versendet.Kommando und Notification erstellen
Mail konfigurieren
.env hinzu.Kommando implementieren und ausführen
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.