Laravel Chisel — libreria di script post-installazione per starter kit
Presentazione di laravel/chisel, un pacchetto che fornisce le primitive per gli script post-installazione utilizzati per rimuovere funzionalità non necessarie dagli starter kit. Pubblicato come v0.1 nel maggio 2026.
Questo articolo si basa su un’analisi del codice sorgente. Si tratta di un pacchetto in una fase iniziale di sviluppo che ha appena ricevuto il tag v0.1 (dato di maggio 2026).
Laravel Chisel è un pacchetto che fornisce le primitive per costruire script post-installazione che rimuovono le funzionalità non necessarie dagli starter kit di Laravel.Gli starter kit includono di default molte funzionalità, ma a seconda del progetto alcune possono essere superflue. Chisel risolve questo problema offrendo un meccanismo che, in modo interattivo dopo l’installazione, “mantiene solo le funzionalità necessarie”.
Gli starter kit di Laravel raccolgono molte funzionalità, ma non tutte servono in ogni progetto. Ad esempio:
Progetti che non hanno bisogno della verifica via email
Progetti che non usano l’autenticazione con passkey
Configurazioni che non richiedono determinati componenti Livewire
Finora bisognava rimuovere manualmente le funzionalità superflue, ma con Chisel la personalizzazione si conclude tramite prompt interattivi al momento dell’installazione.
Uno starter kit che usa Chisel posiziona il file chisel.php nella radice del progetto. Questo file definisce “quali funzionalità sono opzionali”.
<?phprequire getenv('LARAVEL_INSTALLER_AUTOLOADER');use Laravel\Chisel\Chisel;use Laravel\Chisel\Question;return Chisel::script(dirname(__DIR__)) ->questions([ Question::multiselect( name: 'auth_features', label: 'Which authentication features would you like to enable?', options: [ 'email-verification' => 'Email verification', ], hint: 'Use space to select, enter to confirm.', ), ]) ->selected('auth_features', 'email-verification', then: function (Chisel $c) { // Se selezionato: rimuovi i marker di sezione e mantieni il codice $c->files( 'resources/js/pages/settings/profile.tsx', 'app/Providers/FortifyServiceProvider.php', )->removeSectionMarkers('email-verification'); }, else: function (Chisel $c) { // Se non selezionato: cancella file e funzionalità correlate $c->php('app/Models/User.php') ->removeImport('Illuminate\Contracts\Auth\MustVerifyEmail') ->removeInterface('MustVerifyEmail'); $c->file('config/fortify.php')->removeLinesContaining('Features::emailVerification()'); $c->files( 'app/Providers/FortifyServiceProvider.php', 'resources/js/pages/settings/profile.tsx', )->removeSection('email-verification'); $c->files( 'resources/js/components/email-verification-notice.tsx', 'resources/js/pages/auth/verify-email.tsx', 'tests/Feature/Auth/EmailVerificationTest.php', 'tests/Feature/Auth/VerificationNotificationTest.php', )->delete(); }, );
collectAnswers() restituisce un raccoglitore di risposte. Tutti i metodi sono fluent e possono essere chiamati in qualsiasi ordine. In ambienti non interattivi vengono usati automaticamente i valori predefiniti.Un comando Artisan esterno mostra i prompt usando Laravel Prompts e passa le risposte a Chisel.
php($path) fornisce editing tramite l’AST di PHP. Le modifiche vengono salvate automaticamente quando l’oggetto viene distrutto.Per le basi dell’AST di PHP (Abstract Syntax Tree) e l’uso di nikic/php-parser, consulta questa pagina.
Sviluppo: pubblicato dopo 3 mesi di sviluppo non pubblico
Chisel non è un pacchetto che gli utenti finali installano direttamente nelle app Laravel, ma una libreria usata internamente dagli starter kit. In futuro ci si aspetta che gli starter kit ufficiali di Laravel forniscano script post-installazione che sfruttano Chisel.
Repository laravel/chisel
Codice sorgente e riferimento API più recente.
Documentazione ufficiale degli starter kit Laravel
Per l’uso degli starter kit consulta la documentazione ufficiale.