Skip to main content
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).
surveyor, ranger et roster sont tous en release Beta. L’API peut changer avant la sortie v1.0.0. Évaluez avec prudence toute utilisation en production.

É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.
Configurable également via des variables d’environnement.

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
Dernière modification le 13 juillet 2026