Zum Hauptinhalt springen
Dieser Artikel basiert auf einer Quellcode-Analyse. Stand: Juli 2026, das Repository befindet sich in Entwicklung.

Was ist Laravel Package Skeleton?

Laravel Package Skeleton ist ein Starter-Template zum Erstellen von Laravel-Paketen.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
composer install
Beim Ausführen von composer install startet automatisch ein interaktives Konfigurationsskript (configure.php), das Paketname, Vendor-Name, Namespace und die gewünschten Funktionen im Frage-Antwort-Format einrichtet. Anschließend kann sofort mit der Entwicklung begonnen werden.

Warum dieses Skeleton nötig ist

Wenn Sie ein Laravel-Paket „auf eigene Faust” beginnen, geht viel Zeit für die Einrichtung der Testumgebung, statischer Analyse, Code-Formatierung und GitHub Actions verloren – Aufgaben, die mit der eigentlichen Paketlogik nichts zu tun haben. Laravel Package Skeleton fasst die Best Practices, die das Laravel-Team in der eigenen Paketentwicklung nutzt, in einem einzigen Template zusammen. Damit überspringen Sie den Aufbau der Umgebung und beginnen direkt mit der Implementierung der Paketlogik.

Enthaltene Werkzeuge

WerkzeugRolle
PestTest-Framework
LarastanStatische Analyse für Laravel
PintCode-Formatter
Orchestra TestbenchTestumgebung für Pakete
WorkbenchApp für End-to-End-Entwicklung

Konfigurierbare Paketfunktionen

Bei den Prompts von composer install wählen Sie nur die tatsächlich benötigten Funktionen aus. Nicht ausgewählte Gerüstteile werden entfernt.
FunktionBeschreibung
Config fileConfig-Datei in config/ ergänzen
RoutesRoute-Datei ergänzen
ViewsBlade-Views ergänzen
TranslationsSprachdateien ergänzen
MigrationsMigrationen ergänzen
AssetsÖffentliche Assets ergänzen
CommandsArtisan-Kommandos ergänzen
FacadeFacade-Klasse ergänzen
Boost SkillSkill für KI-Agenten ergänzen

Konfigurierbare Werkzeuge

Wie bei den Funktionen lassen sich auch die Werkzeuge je nach Projekt ein- oder ausschalten.
WerkzeugBeschreibung
DependabotAutomatische Update-PRs für Abhängigkeiten
Issue TemplateVorlagen für GitHub Issues
ChangelogAutomatische Aktualisierung von CHANGELOG.md bei Releases
FundingSponsoren-Link für GitHub Sponsors
Security PolicyRichtlinie zur Meldung von Sicherheitslücken

Ablauf des Setups

1

Repository aus dem Template anlegen

Erstellen Sie über den Button Use this template auf GitHub ein neues Repository oder klonen Sie direkt.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
2

Abhängigkeiten installieren

Beim Ausführen von composer install startet configure.php automatisch.
composer install
Wenn Sie das Skript manuell ausführen möchten, verwenden Sie die Option --no-scripts.
composer install --no-scripts
php configure.php
3

Prompts beantworten

Folgende Punkte werden im Frage-Antwort-Format eingerichtet.
  • Author Name / Email
  • Vendor-Name (z. B. kawax)
  • Paketname (z. B. my-package)
  • Paketbeschreibung
  • Klassenname (z. B. MyPackage)
  • Multi-Select der genutzten Funktionen
  • Multi-Select der genutzten Werkzeuge
  • Optionale automatische Erstellung eines GitHub-Repositorys (falls gh CLI authentifiziert ist)
4

Funktionsprüfung

composer test
Alle Prüfungen laufen der Reihe nach: PHPStan → Pint → Type-Coverage → Pest.
5

End-to-End-Test mit Workbench

composer serve
Unter http://localhost:8000 startet eine kleine Laravel-App zur Prüfung des Pakets.

Nicht-interaktiver Modus

Wenn Sie das Setup aus CI oder einem Skript heraus ausführen, verwenden Sie das Flag --no-interaction.
php configure.php --no-interaction --config --routes
Werden Feature-Flags gesetzt, sind nur diese Funktionen enthalten. Ohne Flags werden alle Funktionen aufgenommen.

GitHub Actions CI

Die im Skeleton enthaltene tests.yml ist ein Matrix-Build, der Tests über mehrere PHP-, Laravel- und OS-Kombinationen hinweg ausführt.
matrix:
  os: [ubuntu-latest, windows-latest]
  php: [8.3, 8.4, 8.5]
  laravel: [12.*, 13.*]
  stability: [prefer-lowest, prefer-stable]
Was jeder Job ausführt:
  1. PHPStan (composer analyse) – Statische Analyse
  2. Pint (composer lint:check) – Stil-Check
  3. Type Coverage (composer test:types) – Prüfung auf 100 % Typabdeckung (nur Ubuntu)
  4. Pest (composer test:unit) – Unit-Tests (nur Ubuntu)

Changelog-Automatisierung

update-changelog.yml aktualisiert CHANGELOG.md automatisch beim GitHub-Release. release.yml klassifiziert Änderungen nach PR-Label und erzeugt daraus die Release Notes. Labels für Release Notes:
LabelKategorie
breakingBreaking Change
enhancementFeature
bugBugfix
documentationDokumentation
dependenciesAbhängigkeiten
maintenanceWartung
skip-changelogNicht ins Changelog aufnehmen

Was configure.php tut

configure.php ist ein einmalig ausgeführter Bootstrap. Nach der Ausführung wird die Datei entfernt.

Empfohlene GitHub-Einstellungen nach der Installation

Empfehlungen aus der README nach der Installation:
  • Dependabot-PRs manuell prüfen – ein Auto-Merge-Workflow ist nicht enthalten
  • Release-Notes-Labels anlegenbreaking, enhancement, bug, documentation, dependencies, maintenance, skip-changelog, duplicate
  • Branch-Schutz für main – da die Changelog-Automation via GitHub Actions in CHANGELOG.md committet, müssen die Branch-Protection-Regeln entsprechend angepasst werden
Zusätzliche Repository-Secrets sind nicht nötig. Die enthaltenen Workflows nutzen das eingebaute GITHUB_TOKEN von GitHub.

Aktueller Entwicklungsstand

  • GitHub-Repository: laravel/package-skeleton
  • Veröffentlichung: Juli 2026 (aktive Entwicklung)
  • Hinweis: Da sich das Projekt in einer frühen Phase befindet, können sich API und Aufbau noch ändern
Wer neu mit Laravel-Paketen beginnt, sollte dieses Template gegenüber einem selbst zusammengebauten Skeleton bevorzugen. Es steckt voller Best Practices, die das Laravel-Team über Jahre gesammelt hat.

Repository laravel/package-skeleton

Quellcode und aktuelle Informationen finden Sie hier.

Offizielle Dokumentation zur Paketentwicklung

Zu den Grundlagen der Laravel-Paketentwicklung konsultieren Sie bitte die offizielle Dokumentation.
Zuletzt geändert am 13. Juli 2026