Skip to main content
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.
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

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.

Outils optionnels

De la même façon, vous pouvez activer ou désactiver les outils selon le projet.

É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.
2

Installer les dépendances

L’exécution de composer install déclenche configure.php.
Pour exécuter le script à la main, utilisez --no-scripts.
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

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

Test end-to-end avec Workbench

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

Mode non interactif

En CI ou depuis un script, utilisez --no-interaction.
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.
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 :

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