Inleiding
Een starter kit is een templateproject dat viacreate-project wordt uitgerold wanneer je met laravel new een app maakt. Laravel 13 heeft vier officiële starter kits — React / Vue / Svelte / Livewire — inclusief authenticatie en een initiële UI.
Als je een eigen starter kit maakt, doe je precies hetzelfde: je richt een Laravel-app in als basis en publiceert die als Composer-package.
- Officiële documentatie: Starter Kits
- Officieel implementatievoorbeeld: laravel/react-starter-kit
- Referentiepagina: Laravel Console Starter
De starter kit maken
Een Laravel-project initialiseren
Maak eerst het Laravel-project dat als template dient en ruim onnodige voorbeeldcode op. Geef vervolgens incomposer.json een unieke packagenaam op bij name.
name is de identifier die later wordt gebruikt bij laravel new my-app --using=example/starter-kit.
De scripts in composer.json instellen
Na het uitvoeren vanlaravel new worden de Composer-scripts van de starter kit gebruikt voor de initialisatieflow. Zorg minimaal voor post-root-package-install en post-create-project-cmd.
Bepalen wat je distribueert met .gitattributes
Bestanden die je wel in de repository van de starter kit wilt hebben maar niet in het gegenereerde project van de gebruiker, sluit je uit metexport-ignore.
Registreren op Packagist
Om gebruikers de kit te laten gebruiken via--using, is registratie op Packagist nodig.
1
Zet een publieke repository op GitHub op
Publiceer met de
name uit composer.json en de repository-URL op elkaar afgestemd.2
Registreer op Packagist
Registreer de repository op Packagist. Na publicatie kan
example/starter-kit worden opgelost.3
Vermeld het gebruikscommando in de README
Vermeld voor gebruikers het volgende installatiecommando.
De flow van het laravel new-commando
HetNewCommand van laravel/installer schakelt bij het opgeven van een starter kit de bestemming van create-project om en voert de initialisatiecommando’s achter elkaar uit.
Interessante plekken in NewCommand.php:
- Definitie van de —using-optie
- Uitvoering van
create-projectenpost-root-package-install - De implementatie van
getStarterKit()
Een frontendframework kiezen
De officiële starter kits van Laravel 13 bieden React / Vue / Svelte / Livewire, maar een eigen starter kit hoeft zich niet aan die opzet te houden. Je mag CSS, component libraries en de authenticatiemethode vrij kiezen op basis van je doel.Community-starterkits kiezen vaak een andere CSS-basis dan de officiële kits. Ga ook bij authenticatie niet standaard uit van Fortify, maar ontwerp op basis van je vereisten.
Onderhoud bij versie-upgrades
Een starter kit is niet “klaar na het maken”. Je beweegt continu mee met updates van Laravel en PHP.Omgaan met Laravel- en PHP-upgrades
Werk eerst de vereisten incomposer.json bij en controleer de compatibiliteit in CI.
laravel/framework en de omliggende dependencies tegelijk.
Regelmatige updates van dependencies
Frontenddependencies veranderen snel, dus het is veilig om maandelijks een updatetaak te draaien.- Tailwind
- Component libraries (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
- Inertia- / Livewire-gerelateerde packages
Compatibiliteitstests
Neem minimaal de volgende controles op in je CI:composer installslaagtphp artisan testslaagtnpm install && npm run buildslaagt
Best practices
- Leg
namevroeg vast: wijzigen na publicatie op Packagist is kostbaar. - Baseer scripts op de officiële voorbeelden: als je de initialisatieflow breekt, nemen installatiefouten toe.
- Richt
.gitattributesmeteen in: dat vermindert ruis bij het distribueren van de template. - Maak upgrades een routine: richt je proces zo in dat je direct na een Laravel-release kunt volgen.
- Lees de gerelateerde gidsen erbij: De basis van packageontwikkeling en Versiecompatibiliteit van packages beheren samen lezen maakt je ontwerp stabieler.