Was ist Artisan?
Artisan ist das mit Laravel ausgelieferte Command-Line-Interface (CLI). Es existiert alsartisan-Skript im Projekt-Root und stellt zahlreiche Kommandos bereit, mit denen sich Entwicklung und Betrieb effizient gestalten lassen.
Um eine Liste aller verfügbaren Kommandos anzuzeigen, verwenden Sie den Befehl list.
help voran.
Wenn Sie Laravel Sail nutzen, verwenden Sie statt
php artisan den Befehl sail artisan. Die Kommandos werden dann im Docker-Container ausgeführt.Tinker
Laravel Tinker ist eine REPL-Umgebung, in der Sie die gesamte Anwendung — Eloquent-Modelle, Jobs, Events usw. — interaktiv über die Kommandozeile bedienen können.Eigene Kommandos erstellen
Kommando generieren
Mitmake:command erzeugen Sie ein Grundgerüst für eine Kommandoklasse.
app/Console/Commands/ImportProducts.php erzeugt.
Grundstruktur eines Kommandos
Die generierte Kommandoklasse besitzt drei zentrale Elemente:$signature, $description und handle().
In Laravel 13 können Sie auch die Schreibweise mit PHP-Attributen verwenden.
Argumente und Optionen definieren
In$signature definieren Sie Kommandoname, Argumente und Optionen zusammenhängend.
Argumente und Optionen auslesen
In der Methodehandle() verwenden Sie argument() und option(), um Werte auszulesen.
input() — typisierter Zugriff
Mit der Methode input() können Sie Kommandoargumente und -optionen mit denselben typisierten Accessorn wie bei HTTP-Requests abrufen.
Interaktion mit Nutzern
Nachrichten ausgeben
Für farbige Ausgaben in der Konsole stehen entsprechende Methoden bereit.Nutzer abfragen
Sie können Eingaben von Nutzern interaktiv entgegennehmen.Fortschrittsbalken
Bei der Verarbeitung großer Datenmengen können Sie den Fortschritt übersichtlich anzeigen.Praxisorientierte Anwendungsfälle
Datenimport-Kommando
Ein praxisnahes Beispiel für ein Kommando, das Produktdaten aus einer CSV-Datei importiert.1
Kommando erzeugen
2
Kommando implementieren
3
Kommando ausführen
Regelmäßiges Wartungskommando
Beispiel für ein regelmäßig ausgeführtes Wartungskommando, etwa zum Löschen alter Daten.Kombination mit dem Scheduler
Ein erstelltes Kommando können Sie inroutes/console.php geplant ausführen. Details siehe Task-Scheduling.
Kommandos testen
Mit den Testfunktionen von Laravel können Sie das Verhalten von Artisan-Kommandos verifizieren.Beispiele für Assertion-Methoden, die mit
artisan() verwendet werden können:Der dev-Befehl
Der Artisan-Befehl dev startet mehrere für die lokale Entwicklung notwendige Prozesse in einem einzigen Terminal-Fenster. Standardmäßig laufen parallel: der PHP-Entwicklungsserver, ein Queue-Worker, die Log-Überwachung mit Pail und die Asset-Kompilierung mit Vite.
concurrently zur Verwaltung der Prozesse. Jeder Prozess wird beschriftet und farblich hervorgehoben, sodass Sie in der Terminalausgabe leicht erkennen, um welchen Prozess es sich handelt. Fällt einer der Prozesse aus, werden alle anderen Prozesse automatisch beendet.
Standardmäßig werden folgende Prozesse ausgeführt:
Der
vite-Prozess erkennt automatisch den verwendeten Node-Paketmanager (npm, pnpm, Yarn, Bun) und nutzt den passenden Ausführungsbefehl.Anpassen der dev-Prozesse
Sie können die vom dev-Befehl ausgeführten Prozesse mit der Klasse DevCommands anpassen. Üblicherweise registrieren Sie sie in der Methode boot des AppServiceProvider Ihrer Anwendung. Die Methode register erwartet einen Kommandostring und optional einen Prozessnamen.
artisan, die automatisch php artisan voranstellt.
node den erkannten Paketmanager-Ausführungsbefehl (z. B. npm run) voran, während nodeExec den Exec-Befehl des Paketmanagers (z. B. npx) voranstellt.
blue, purple, pink, orange, green und yellow. Der Methode color können Sie zudem einen benutzerdefinierten Hex-Farbwert übergeben.
dev-Prozesse aufzulisten, ohne sie auszuführen, verwenden Sie den Befehl dev:list.
Filtern der dev-Prozesse
Mit der Methode only legen Sie fest, welche Prozesse beim Ausführen des dev-Befehls gestartet werden sollen. Analog können Sie mit der Methode except bestimmte Prozesse ausschließen.