Artisan — Die Kommandozeile von Laravel
Praxis-Guide zu Laravel Artisan — Code generieren, Migrationen ausführen, Queues steuern und Caches leeren direkt über die Kommandozeile.
Artisan ist die Kommandozeile, die jedem Laravel-Projekt beiliegt – du sprichst sie immer über php artisan an. Statt Routine-Code von Hand zu tippen, generierst du Modelle, Controller und Migrationen mit einem einzigen Befehl, steuerst Queues und geplante Tasks und räumst Caches auf, wenn sich am Code etwas geändert hat. Dieser Guide bündelt die Befehle, die du im Laravel-Alltag wirklich brauchst – vom ersten make:-Aufruf bis zur Wartungspflege im Produktivbetrieb.
Allgemein
php artisan list — Listet alle verfügbaren Artisan-Befehle auf.
php artisan listphp artisan help <command> — Zeigt die Hilfe zu einem bestimmten Befehl an.
php artisan help make:modelphp artisan serve — Startet den eingebauten Entwicklungsserver.
php artisan serve --port=8080php artisan tinker — Öffnet eine interaktive REPL für deine Anwendung.
php artisan tinkerphp artisan env — Zeigt die aktuelle Anwendungsumgebung an.
php artisan envphp artisan about — Zeigt eine Übersicht der Anwendung an (Laravel 9+).
php artisan aboutCode-Generierung (make:)
php artisan make:model <Name> — Erzeugt ein neues Eloquent-Modell.
php artisan make:model Post -mfscphp artisan make:controller <Name> — Erzeugt einen neuen Controller.
php artisan make:controller PostController --resourcephp artisan make:migration <name> — Erzeugt eine neue Datenbank-Migration.
php artisan make:migration create_posts_tablephp artisan make:seeder <Name> — Erzeugt einen neuen Datenbank-Seeder.
php artisan make:seeder PostSeederphp artisan make:middleware <Name> — Erzeugt eine neue Middleware-Klasse.
php artisan make:middleware CheckAgephp artisan make:request <Name> — Erzeugt eine neue Form-Request-Klasse zur Validierung.
php artisan make:request StorePostRequestphp artisan make:command <Name> — Erzeugt einen neuen Artisan-Befehl.
php artisan make:command SendEmailsphp artisan make:job <Name> — Erzeugt eine neue Queue-Job-Klasse.
php artisan make:job ProcessPodcastDatenbank & Migrationen
php artisan migrate — Führt ausstehende Datenbank-Migrationen aus. In Produktion mit Bedacht einsetzen (vorher Backup, --force nötig).
php artisan migratephp artisan migrate:status — Zeigt den Status jeder einzelnen Migration an.
php artisan migrate:statusphp artisan migrate:rollback — Macht die letzte Batch an Migrationen rückgängig.
php artisan migrate:rollback --step=2php artisan migrate:fresh — Verwirft alle Tabellen und führt anschließend alle Migrationen erneut aus. Destruktiv: löscht sämtliche Daten – in Produktion brandgefährlich und nur mit --force.
php artisan migrate:fresh --seedphp artisan migrate:reset — Macht alle Migrationen rückgängig und leert damit das Schema.
php artisan migrate:resetphp artisan db:seed — Führt Datenbank-Seeder aus.
php artisan db:seed --class=PostSeederphp artisan db:wipe — Verwirft alle Tabellen, Views und Typen. Destruktiv: löscht die gesamte Datenbankstruktur restlos – in Produktion brandgefährlich, --force erforderlich.
php artisan db:wipeCache & Konfiguration
php artisan cache:clear — Leert den Anwendungs-Cache.
php artisan cache:clearphp artisan config:clear — Leert den Konfigurations-Cache.
php artisan config:clearphp artisan config:cache — Erzeugt eine Konfigurations-Cache-Datei (schnelleres Laden).
php artisan config:cachephp artisan route:cache — Erzeugt eine Route-Cache-Datei.
php artisan route:cachephp artisan route:clear — Leert den Route-Cache.
php artisan route:clearphp artisan view:clear — Löscht die kompilierten View-Dateien.
php artisan view:clearphp artisan optimize:clear — Leert alle gecachten Dateien (Konfiguration, Routen, Views, Events).
php artisan optimize:clearQueues & Scheduling
php artisan queue:work — Startet die Verarbeitung von Jobs in der Queue.
php artisan queue:work --tries=3php artisan queue:listen — Lauscht auf Queue-Jobs (startet nach jedem Job neu).
php artisan queue:listenphp artisan queue:retry <id> — Wiederholt einen fehlgeschlagenen Queue-Job.
php artisan queue:retry allphp artisan queue:failed — Listet alle fehlgeschlagenen Queue-Jobs auf.
php artisan queue:failedphp artisan queue:flush — Löscht alle fehlgeschlagenen Queue-Jobs.
php artisan queue:flushphp artisan schedule:run — Führt die im Scheduler definierten geplanten Tasks aus.
php artisan schedule:runphp artisan schedule:list — Listet alle geplanten Tasks auf.
php artisan schedule:listRouten & Wartung
php artisan route:list — Listet alle registrierten Routen auf.
php artisan route:list --path=apiphp artisan down — Versetzt die Anwendung in den Wartungsmodus.
php artisan down --secret='bypass-token'php artisan up — Holt die Anwendung aus dem Wartungsmodus zurück.
php artisan upphp artisan key:generate — Erzeugt einen neuen Verschlüsselungs-Schlüssel für die Anwendung.
php artisan key:generatephp artisan storage:link — Legt einen symbolischen Link von public/storage auf storage/app/public an.
php artisan storage:link Fazit
Artisan nimmt dir die wiederkehrende Fleißarbeit ab und macht Laravel-Projekte vom ersten Scaffold bis zum Deployment steuerbar – ein einziger Einstiegspunkt für Generierung, Datenbank, Queues und Wartung. Besondere Vorsicht gilt den löschenden Befehlen: migrate:fresh und db:wipe verwerfen sämtliche Tabellen und Daten und richten in der Produktion irreparablen Schaden an, wenn sie versehentlich laufen. Cache deine Konfiguration und Routen im Produktivbetrieb (config:cache, route:cache) und denke nach jeder Änderung an optimize:clear.
Weiterführende Links
- Artisan Console – Laravel-Dokumentation – offizielle Referenz zu allen Artisan-Befehlen und eigenen Commands (englisch)
- Database: Migrations – Laravel-Dokumentation – Hintergrund zu
migrate,migrate:freshund den löschenden Befehlen (englisch)