Cet article s’appuie sur les README des dépôts GitHub et le code source. Les trois packages sont encore en version Beta (à la date d’avril 2026).
État des dernières releases (avril 2026)
Vue d’ensemble
Depuis le début 2026, Laravel a publié trois packages liés à l’analyse de code. Ils sont utilisables individuellement, mais forment un écosystème d’analyse de code interconnecté.
Détaillons chaque package.
laravel/surveyor — moteur d’analyse statique
laravel/surveyor est un outil d’analyse statique qui parse des fichiers PHP et fournit sous forme structurée des métadonnées détaillées sur les classes, méthodes, propriétés, types de retour, etc. Il est spécialisé dans l’extraction d’informations exploitables par d’autres outils ou packages.Installation
Utilisation de base
Analyser un fichier
Analyser une classe directement
Informations disponibles via ClassResult
Système de types
Surveyor dispose d’un système de types riche qui permet de manipuler les types PHP de manière structurée.Configuration du cache
Vous pouvez mettre en cache les résultats d’analyse pour améliorer les performances lors d’exécutions répétées.Analyse des modèles Eloquent
Surveyor traite spécialement les modèles Eloquent en tentant de se connecter à la base de données. Les relations, attributs, accesseurs et casts du modèle sont détectés.Surveyor tente de se connecter à la base de données lors de l’analyse d’un modèle Eloquent : ce n’est donc pas une analyse purement statique. Les performances et la consommation mémoire sont en cours d’amélioration ; les contributions sont bienvenues.
laravel/ranger — introspection de haut niveau
laravel/ranger est une bibliothèque de haut niveau qui enveloppe surveyor et parcourt l’application Laravel complète pour collecter : routes, modèles, Enum, événements de broadcast, variables d’environnement, composants Inertia, etc.Installation
Utilisation de base
Vous écrivez des callbacks qui sont exécutés lorsqu’un composant est découvert.Composants collectés par Ranger
laravel/roster — outil de détection de packages
laravel/roster détecte quels packages de l’écosystème Laravel sont installés dans le projet. Les développeurs de packages et d’outils peuvent facilement savoir « ce projet utilise-t-il Inertia ? », « quelle est la version de Livewire ? », etc.Installation
Utilisation de base
Cas d’usage concrets
Outil de génération de guidelines IA (Boost)
Laravel Boost s’appuie sur roster pour connaître les packages installés et adapte automatiquement la génération de guidelines et de skills destinés aux agents IA (GitHub Copilot, Claude, etc.). Selon que « le projet utilise Inertia ou non » ou « Livewire est présent ou non », il sélectionne les fichiers de guidelines adéquats à fournir à l’agent IA.Créer un checker de compatibilité de packages
Si vous développez un package dont le comportement varie en fonction des packages installés dans le projet utilisateur, roster est très pratique.Génération automatique de documentation d’application
Avec ranger, vous pouvez construire un outil qui collecte automatiquement routes, modèles et Enums pour générer de la documentation.Conclusion
surveyor, ranger et roster fournissent une nouvelle fondation pour l’analyse programmatique de code dans l’écosystème Laravel. Ces packages ciblent principalement les développeurs de packages et d’outils, et ne sont pas destinés aux utilisateurs finaux. Ils sont néanmoins déjà utilisés en interne par des outils officiels Laravel comme Laravel Boost, et devraient continuer à étendre l’écosystème.laravel/surveyor
Moteur d’analyse statique de code PHP
laravel/ranger
Bibliothèque d’introspection de haut niveau
laravel/roster
Outil de détection de packages