Wat is Artisan
Artisan is de command-line interface (CLI) die bij Laravel wordt meegeleverd. Het bestaat als hetartisan-script in de projectroot en biedt talloze commando’s die ontwikkeling en beheer efficiënter maken.
Gebruik het list-commando om een overzicht van de beschikbare commando’s te bekijken.
help voor.
Gebruik je Laravel Sail, gebruik dan
sail artisan in plaats van php artisan.
Het commando wordt dan uitgevoerd binnen de Docker-container.Tinker
Laravel Tinker is een REPL-omgeving waarmee je de hele applicatie — Eloquent-modellen, jobs, events en meer — interactief kunt bedienen vanaf de command line.Eigen commando’s maken
Een commando genereren
Metmake:command genereer je een sjabloon voor een commandoklasse.
app/Console/Commands/ImportProducts.php gegenereerd.
De basisstructuur van een commando
De gegenereerde commandoklasse heeft drie hoofdonderdelen:$signature, $description en handle().
In Laravel 13 kun je ook een schrijfwijze met PHP-attributen gebruiken.
Argumenten en opties definiëren
In$signature definieer je de commandonaam, argumenten en opties samen.
Argumenten en opties ophalen
In dehandle()-methode haal je de waarden op met argument() en option().
input() — getypeerde accessors
Met de input()-methode kun je argumenten en opties van een commando ophalen via dezelfde getypeerde accessors als bij HTTP-requests.
Interactie met de gebruiker
Berichten uitvoeren
Er zijn methoden beschikbaar om gekleurde berichten naar de console te schrijven.Vragen stellen aan de gebruiker
Je kunt interactief invoer van de gebruiker ontvangen.Voortgangsbalk
Tijdens het verwerken van grote hoeveelheden data kun je de voortgang overzichtelijk tonen.Praktische use cases
Een data-importcommando
Een praktisch voorbeeld van een commando dat productdata importeert uit een CSV-bestand.1
Genereer het commando
2
Implementeer het commando
3
Voer het commando uit
Een periodiek onderhoudscommando
Een voorbeeld van een onderhoudscommando dat je periodiek uitvoert, zoals het verwijderen van oude data.Combineren met geplande uitvoering
Gemaakte commando’s kun je inplannen inroutes/console.php.
Zie taakplanning voor meer details.
Commando’s testen
Met de testfunctionaliteit van Laravel kun je de werking van Artisan-commando’s verifiëren.Voorbeelden van assertion-methoden die je met de
artisan()-methode kunt gebruiken:Het dev-commando
Het Artisan-commando dev start de verschillende processen die je nodig hebt voor lokale ontwikkeling samen in één terminalvenster. Standaard draaien de PHP-ontwikkelserver, de queue worker, logbewaking via Pail en het compileren van assets met Vite parallel.
@laravel/multiplex. Elk proces krijgt een eigen tab, waarin je de uitvoer kunt doorzoeken en scrollen. Crasht een proces, dan wordt het automatisch herstart, en bij afsluiten wordt de uitvoer teruggeschreven naar de scrollback van de terminal, zodat je geen logs verliest.
Het dev-commando vereist Node.js 22.13 of hoger. Op Windows wordt teruggevallen op het npm-pakket concurrently, waardoor de UI met tabs niet beschikbaar is.
De processen die standaard worden uitgevoerd zijn:
Het
vite-proces detecteert automatisch welke Node-pakketmanager je gebruikt (npm, pnpm, Yarn of Bun) en gebruikt het bijbehorende uitvoercommando.--no-restart op.
De dev-processen aanpassen
De processen die het dev-commando uitvoert, kun je aanpassen met de klasse DevCommands. Meestal registreer je ze in de boot-methode van de AppServiceProvider van je applicatie. De register-methode ontvangt een commandostring en optioneel een procesnaam.
artisan-methode gebruiken, die automatisch php artisan vooraan zet.
node-methode het runcommando van de gedetecteerde pakketmanager (bijv. npm run) vooraan, en de nodeExec-methode het exec-commando van de pakketmanager (bijv. npx).
blue, purple, pink, orange, green en yellow. Je kunt ook een eigen hexkleur doorgeven aan de color-methode.
dev-processen bekijken zonder ze daadwerkelijk te starten, gebruik dan het dev:list-commando.
De dev-processen filteren
Met de only-methode geef je aan dat bij het uitvoeren van het dev-commando alleen specifieke processen moeten starten. Evenzo kun je met de except-methode specifieke processen uitsluiten.
dev-commando’s uitsluiten die door pakketten zijn geregistreerd, of de standaardcommando’s van Laravel, gebruik dan de methoden withoutVendorCommands en withoutDefaultCommands.