Laravel 13 führte eine einheitliche Möglichkeit ein, alles zu starten, was ein lokales Projekt braucht — Entwicklungsserver, Queue-Worker, Log-Ausgabe und Vite. Zunächst löste das Anwendungs-Skeleton dies über ein dev-Skript in der composer.json, das vier Befehle durch npx concurrently leitete. Laravel 13.16 ersetzte diesen Ansatz durch einen First-Party-Befehl: php artisan dev. Das Composer-dev-Skript bleibt im Skeleton, delegiert aber nur noch dorthin.
Standardmäßig laufen vier Prozesse: server (php artisan serve --host=localhost), queue (php artisan queue:listen --tries=1 --timeout=0), logs (php artisan pail --timeout=0) und vite (npm run dev). Der Pail-Prozess wird nur registriert, wenn pcntl_fork verfügbar ist; Windows-Nutzer bekommen die anderen drei. Der vite-Prozess erkennt den Paketmanager anhand der Lockfile und führt bei Bedarf pnpm run dev oder das Yarn-/Bun-Äquivalent ohne Konfiguration aus. Intern nutzt der Befehl weiterhin concurrently und übergibt seit 13.18 --kill-others-on-fail, sodass ein abstürzender Prozess den gesamten Stack stoppt.
Eigene Prozesse registriert man über die Klasse DevCommands, typischerweise in der boot-Methode des AppServiceProviders, abgesichert durch eine Local-Environment-Prüfung. Vier Methoden stehen bereit: artisan() stellt php artisan voran, node() nutzt den run-Befehl des erkannten Paketmanagers, nodeExec() verwendet die exec-Variante (npx und Freunde), und register() akzeptiert beliebige Shell-Befehle wie die Stripe CLI. Das zweite Argument ist der Prozessname; Namen sind die Identität eines Prozesses, sodass das Registrieren unter einem vorhandenen Namen wie queue den Standard ersetzt — etwa um queue:listen durch Horizon zu tauschen. Anwendungs-Registrierungen haben Vorrang vor Framework-Defaults, diese wiederum vor Vendor-Registrierungen. Optionale Farbhelfer wie purple() oder color('#ff6347') färben die Ausgabe.
Laravel 13.17 ergänzte php artisan dev:list, das jeden registrierten Prozess mit Befehl sowie Datei und Zeile der Registrierung anzeigt. DevCommands::only('server', 'vite') und DevCommands::except('queue') filtern die Liste zur Laufzeit, ohne Registrierungen zu entfernen. Der Befehl stammt von Joe Tannenbaum (Pull Request #60412) und ist in der Artisan-Dokumentation beschrieben.
Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.