Passer au contenu principal
Cet article s’appuie sur une exploration du code source. Il s’agit d’un dépôt en cours de développement à la date de juillet 2026.

Qu’est-ce que Laravel Package Skeleton ?

Laravel Package Skeleton est un template de démarrage pour créer un package Laravel.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
composer install
L’exécution de composer install lance automatiquement un script de configuration interactif (configure.php) qui vous demande, question par question, le nom du package, du vendor, du namespace et les fonctionnalités à activer. À l’issue de cette étape, vous êtes prêt à développer immédiatement.

Pourquoi ce squelette est utile

Commencer un package Laravel « à sa manière » demande beaucoup de temps sur la mise en place de l’environnement de test, l’analyse statique, le formatage du code et GitHub Actions — autant de tâches qui n’ont rien à voir avec la logique du package. Laravel Package Skeleton rassemble en un seul template les bonnes pratiques utilisées par l’équipe Laravel elle-même. En partant de ce template, vous sautez la phase de « mise en place » et vous démarrez directement l’implémentation.

Outils inclus

OutilRôle
PestFramework de test
LarastanAnalyse statique pour Laravel
PintFormateur de code
Orchestra TestbenchEnvironnement de test pour packages
WorkbenchApplication de développement end-to-end

Fonctionnalités de package configurables

Lors du prompt de composer install, vous choisissez uniquement les fonctionnalités souhaitées. Les scaffolds correspondants aux options non sélectionnées sont supprimés.
FonctionnalitéDescription
Config fileAjoute un fichier de configuration dans config/
RoutesAjoute un fichier de routes
ViewsAjoute des vues Blade
TranslationsAjoute des fichiers de traductions
MigrationsAjoute des fichiers de migration
AssetsAjoute des assets publics
CommandsAjoute des commandes Artisan
FacadeAjoute une classe facade
Boost SkillAjoute un skill pour agents IA

Outils optionnels

De la même façon, vous pouvez activer ou désactiver les outils selon le projet.
OutilDescription
DependabotPR de mise à jour automatique des dépendances
Issue TemplateModèle d’issue GitHub
ChangelogMise à jour automatique de CHANGELOG.md lors des releases
FundingLien de sponsors GitHub
Security PolicyPolitique de signalement de vulnérabilité

Étapes de mise en place

1

Créer le dépôt à partir du template

Cliquez sur le bouton Use this template sur GitHub ou clonez directement.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
2

Installer les dépendances

L’exécution de composer install déclenche configure.php.
composer install
Pour exécuter le script à la main, utilisez --no-scripts.
composer install --no-scripts
php configure.php
3

Répondre aux prompts

Vous répondez aux éléments suivants un à un :
  • Nom et e-mail de l’auteur
  • Nom du vendor (ex. kawax)
  • Nom du package (ex. my-package)
  • Description du package
  • Nom de la classe (ex. MyPackage)
  • Sélection multiple des fonctionnalités
  • Sélection multiple des outils
  • Création automatique du dépôt GitHub (si gh est authentifié)
4

Vérification

composer test
Exécute successivement PHPStan → Pint → couverture de types → Pest.
5

Test end-to-end avec Workbench

composer serve
Une petite application Laravel de test démarre sur http://localhost:8000.

Mode non interactif

En CI ou depuis un script, utilisez --no-interaction.
php configure.php --no-interaction --config --routes
Les flags de fonctionnalités permettent de ne conserver que les options souhaitées. Sans flags, toutes les fonctionnalités sont incluses.

CI GitHub Actions

Le fichier tests.yml fourni effectue une matrice de test sur plusieurs versions de PHP, Laravel et OS.
matrix:
  os: [ubuntu-latest, windows-latest]
  php: [8.3, 8.4, 8.5]
  laravel: [12.*, 13.*]
  stability: [prefer-lowest, prefer-stable]
Actions exécutées dans chaque job :
  1. PHPStan (composer analyse) — analyse statique
  2. Pint (composer lint:check) — vérification de style
  3. Couverture de types (composer test:types) — vérifie 100 % de couverture (Ubuntu seulement)
  4. Pest (composer test:unit) — tests unitaires (Ubuntu seulement)

Automatisation du Changelog

update-changelog.yml met à jour CHANGELOG.md automatiquement lors d’une release GitHub. release.yml classe les changements selon les labels de PR pour générer les notes de release. Labels des notes de release :
LabelCatégorie
breakingChangement cassant
enhancementAjout de fonctionnalité
bugCorrection de bug
documentationDocumentation
dependenciesDépendances
maintenanceMaintenance
skip-changelogNon inclus dans l’historique

Ce que fait configure.php

configure.php est un script de configuration bootstrap exécuté une seule fois. Il se supprime après exécution.

Configuration GitHub post-installation

Recommandations post-installation indiquées dans le README :
  • Revue manuelle des PR Dependabot — aucun workflow d’auto-merge inclus
  • Créer les labels de notes de releasebreaking, enhancement, bug, documentation, dependencies, maintenance, skip-changelog, duplicate
  • Configurer la protection de la branche main — l’automatisation du changelog effectue un commit sur CHANGELOG.md, il faut ajuster la protection en conséquence
Aucun secret de dépôt supplémentaire n’est nécessaire : les workflows utilisent le GITHUB_TOKEN intégré à GitHub.

État actuel du développement

  • Dépôt GitHub : laravel/package-skeleton
  • Date de publication : juillet 2026 (développement actif)
  • Attention : projet en phase précoce, l’API et la structure peuvent évoluer
Si vous vous lancez dans le développement d’un package Laravel, mieux vaut partir de ce template plutôt que d’assembler soi-même un squelette. Il concentre les bonnes pratiques accumulées par l’équipe Laravel au fil des années.

Dépôt laravel/package-skeleton

Retrouvez le code source et les informations à jour ici.

Documentation officielle de développement de packages

Consultez la documentation officielle pour les bases du développement de packages Laravel.
Dernière modification le 13 juillet 2026