Vai al contenuto principale
Questo articolo si basa su un’indagine del codice sorgente. Al momento (luglio 2026) il repository è in fase di sviluppo.

Cos’è Laravel Package Skeleton

Laravel Package Skeleton è un template starter per creare pacchetti Laravel.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
composer install
Eseguendo composer install parte automaticamente uno script di configurazione interattivo (configure.php), che imposta con un’unica sessione a domande e risposte nome pacchetto, vendor, namespace e funzionalità da usare. Dopo la configurazione sei pronto per iniziare a sviluppare immediatamente.

Perché serve questo skeleton

Se inizi a costruire un pacchetto Laravel “a modo tuo”, perdi molto tempo in attività non correlate alla logica vera e propria del pacchetto: setup dell’ambiente di test, analisi statica, formattazione del codice, configurazione di GitHub Actions. Laravel Package Skeleton raccoglie in un unico template le best practice usate dal team di Laravel nello sviluppo reale dei pacchetti. Usando il template puoi saltare la “costruzione dell’ambiente” e iniziare subito dall’implementazione della logica.

Strumenti inclusi

StrumentoRuolo
PestFramework di test
LarastanAnalisi statica per Laravel
PintFormatter di codice
Orchestra TestbenchAmbiente di test per pacchetti
WorkbenchApp per lo sviluppo end-to-end

Funzionalità di pacchetto configurabili

Nel prompt durante composer install puoi selezionare solo le funzionalità che ti servono. Gli scaffold relativi alle funzionalità non selezionate vengono rimossi.
FunzionalitàDescrizione
Config fileAggiunge un file di configurazione in config/
RoutesAggiunge un file di rotte
ViewsAggiunge view Blade
TranslationsAggiunge file di lingua
MigrationsAggiunge file di migration
AssetsAggiunge asset pubblici
CommandsAggiunge comandi Artisan
FacadeAggiunge una classe facade
Boost SkillAggiunge skill per agenti AI

Strumenti configurabili

Come per le funzionalità, in base al progetto puoi anche attivare/disattivare gli strumenti.
StrumentoDescrizione
DependabotPR di aggiornamento automatico delle dipendenze
Issue TemplateTemplate per le issue di GitHub
ChangelogAggiornamento automatico di CHANGELOG.md alla release
FundingLink ai GitHub Sponsors
Security PolicyPolicy di segnalazione vulnerabilità di sicurezza

Flusso di setup

1

Crea un repository dal template

Premi il pulsante Use this template su GitHub per creare un nuovo repository, oppure clona direttamente.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
2

Installa le dipendenze

Eseguendo composer install parte automaticamente configure.php.
composer install
Se vuoi eseguire manualmente lo script, usa l’opzione --no-scripts.
composer install --no-scripts
php configure.php
3

Rispondi al prompt

Le voci seguenti vengono impostate a domande e risposte.
  • Nome e email dell’autore
  • Nome del vendor (es. kawax)
  • Nome del pacchetto (es. my-package)
  • Descrizione del pacchetto
  • Nome della classe (es. MyPackage)
  • Selezione multipla delle funzionalità
  • Selezione multipla degli strumenti
  • Creazione automatica del repository GitHub (se gh CLI è autenticato)
4

Verifica il funzionamento

composer test
Esegue tutti i controlli in ordine: PHPStan → Pint → coverage dei tipi → Pest.
5

Test end-to-end con Workbench

composer serve
Su http://localhost:8000 si avvia una piccola app Laravel per la verifica del pacchetto.

Modalità non interattiva

Per il setup da CI o da script usa il flag --no-interaction.
php configure.php --no-interaction --config --routes
Specificando i flag di funzionalità, vengono incluse solo quelle indicate. Se li ometti, vengono incluse tutte le funzionalità.

CI GitHub Actions

Il tests.yml incluso nello skeleton è una matrix build che esegue i test su più combinazioni di versione PHP, versione Laravel e OS.
matrix:
  os: [ubuntu-latest, windows-latest]
  php: [8.3, 8.4, 8.5]
  laravel: [12.*, 13.*]
  stability: [prefer-lowest, prefer-stable]
Contenuto eseguito in ciascun job:
  1. PHPStan (composer analyse) — analisi statica
  2. Pint (composer lint:check) — check di stile
  3. Type coverage (composer test:types) — verifica del 100% di copertura dei tipi (solo Ubuntu)
  4. Pest (composer test:unit) — test unitari (solo Ubuntu)

Automazione del Changelog

update-changelog.yml aggiorna automaticamente CHANGELOG.md in seguito a un release GitHub. release.yml classifica i cambiamenti per label delle PR e genera le release note. Label delle release note:
LabelCategoria
breakingModifiche non retrocompatibili
enhancementAggiunta di funzionalità
bugBug fix
documentationDocumentazione
dependenciesDipendenze
maintenanceManutenzione
skip-changelogDa escludere dal changelog

Cosa fa configure.php

configure.php è uno script di bootstrap che si esegue una sola volta per la configurazione. Al termine viene rimosso.

Impostazioni GitHub post-installazione

Impostazioni consigliate dopo l’installazione, come descritto nel README:
  • Review manuale delle PR Dependabot — non è incluso alcun workflow di auto-merge
  • Creazione delle label delle release notebreaking, enhancement, bug, documentation, dependencies, maintenance, skip-changelog, duplicate
  • Protezione del branch main — poiché l’automazione del Changelog fa commit di CHANGELOG.md tramite GitHub Actions, occorre regolare le regole di protezione del branch
Non servono secret aggiuntivi al repository. I workflow inclusi usano il GITHUB_TOKEN integrato di GitHub.

Stato attuale dello sviluppo

  • Repository GitHub: laravel/package-skeleton
  • Data di pubblicazione: luglio 2026 (sviluppo attivo)
  • Nota: essendo in fase iniziale, API e struttura possono cambiare
Se stai per iniziare a sviluppare un pacchetto Laravel, meglio partire da questo template piuttosto che costruire da zero uno skeleton personale. Contiene le best practice raccolte dal team di Laravel in anni di sviluppo di pacchetti.

Repository laravel/package-skeleton

Codice sorgente e ultime novità qui.

Documentazione ufficiale sullo sviluppo di pacchetti

Per le basi dello sviluppo di pacchetti Laravel consulta la documentazione ufficiale.
Ultima modifica il 13 luglio 2026