Cet article s’appuie sur une exploration du code source. Il s’agit d’un package en tout début de développement, dont le tag v0.1 vient d’être posé (à la date de mai 2026).
Qu’est-ce que Laravel Chisel ?
Laravel Chisel est un package qui fournit des primitives pour construire des scripts post-installation destinés à supprimer les fonctionnalités inutiles d’un starter kit Laravel. Un starter kit embarque beaucoup de fonctionnalités prêtes à l’emploi, mais selon le projet, certaines d’entre elles peuvent être inutiles. Chisel résout ce problème en proposant, après l’installation, un mécanisme interactif permettant de « ne conserver que les fonctionnalités nécessaires ».Pourquoi c’est utile
Les starter kits Laravel regroupent beaucoup de fonctionnalités, mais aucun projet n’a besoin de toutes les avoir. Par exemple :- Projets qui n’ont pas besoin de vérification par e-mail
- Projets qui n’utilisent pas l’authentification par passkey
- Configurations où certains composants Livewire sont superflus
Définition du script chisel.php
Un starter kit qui utilise Chisel place un fichierchisel.php à la racine du projet. Ce fichier définit « quelles fonctionnalités sont optionnelles ».
Méthodes de définition du script
Collecte interactive des réponses
collectAnswers() retourne un collecteur de réponses. Toutes les méthodes sont fluent et peuvent être appelées dans n’importe quel ordre. En environnement non interactif, les valeurs par défaut sont utilisées automatiquement.
Une commande Artisan externe affiche les prompts à l’aide de Laravel Prompts et transmet les réponses à Chisel.
Mutations de fichiers
file($path) cible un fichier unique et files(...$paths) plusieurs fichiers.
Édition basée sur l’AST PHP
php($path) fournit une édition basée sur l’AST PHP. Les modifications sont sauvegardées automatiquement lorsque l’objet est libéré.
Les bases de l’AST PHP (arbre syntaxique abstrait) et l’utilisation de nikic/php-parser sont expliquées ici.
Marqueurs de section
Encadrez le code optionnel avec une paire de commentaires.{}).
removeSectionMarkers('passkeys')— supprime les marqueurs, conserve le coderemoveSection('passkeys')— supprime à la fois les marqueurs et le code
chisel- est ajouté automatiquement.
Support npm
La méthode
npm() détecte automatiquement npm, yarn, pnpm et bun.
État actuel du développement
- Dépôt GitHub : laravel/chisel
- Release : v0.1 (publié en mai 2026)
- Historique : rendu public après trois mois de développement privé
Dépôt laravel/chisel
Le code source et la référence d’API la plus récente sont ici.
Documentation officielle des starter kits Laravel
Pour l’utilisation des starter kits eux-mêmes, consultez la documentation officielle.