Skip to main content

Was ist Artisan?

Artisan ist das mit Laravel ausgelieferte Command-Line-Interface (CLI). Es existiert als artisan-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.
Um die Nutzung eines Kommandos zu prüfen, stellen Sie 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.
Nach dem Start können Sie PHP-Code direkt ausführen.
Tinker verändert die Daten tatsächlich. Setzen Sie es in der Produktion mit größter Vorsicht ein. Für Verifikationen und Debugging in lokalen oder Staging-Umgebungen ist es hervorragend geeignet.

Eigene Kommandos erstellen

Kommando generieren

Mit make:command erzeugen Sie ein Grundgerüst für eine Kommandoklasse.
Dabei wird die Datei 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 Methode handle() 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.
Um gezielt einen bestimmten Namen abzurufen, übergeben Sie den Namen direkt (es wird sowohl unter Argumenten als auch Optionen gesucht).
Während argument() und option() Strings zurückgeben, konvertieren die typisierten Accessoren von input() in den passenden Typ. Praktisch, wenn Sie Datumsangaben, Zahlen oder Enums typsicher behandeln möchten.

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.
Für feinere manuelle Steuerung verwenden Sie folgende Methode:

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 in routes/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.
Intern verwendet Laravel das npm-Paket 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.
Für Artisan-Kommandos gibt es die Methode artisan, die automatisch php artisan voranstellt.
Analog stellt die Methode node den erkannten Paketmanager-Ausführungsbefehl (z. B. npm run) voran, während nodeExec den Exec-Befehl des Paketmanagers (z. B. npx) voranstellt.
Wenn Sie einen Prozess unter demselben Namen wie einen Standardprozess registrieren, wird dieser Standardprozess ersetzt. So können Sie beispielsweise den Server-Prozess so anpassen, dass er einen anderen Port verwendet.
Auch die Farbe der Prozessbeschriftung im Terminal lässt sich anpassen. Verfügbare Farbmethoden sind blue, purple, pink, orange, green und yellow. Der Methode color können Sie zudem einen benutzerdefinierten Hex-Farbwert übergeben.
Um die registrierten 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.
Wenn Sie in der lokalen Entwicklung parallel zu Horizon oder Reverb arbeiten, ist es praktisch, sie über DevCommands::artisan() zu registrieren — mit einem einzigen php artisan dev starten Sie alles zusammen.

Zusammenfassung häufig verwendeter Befehle

Zuletzt geändert am 2. August 2026