跳转到主要内容
本文基于 GitHub 仓库的 README 与源代码进行整理。3 个包目前都还是正式发布前的 Beta 版(截至 2026 年 4 月)。
surveyor、ranger、roster 都处于 Beta 阶段。在 v1.0.0 发布前 API 可能变更。生产环境使用时请谨慎评估。

最新发布状况(2026 年 4 月)

概览

Laravel 在 2026 年公开了 3 个与代码分析相关的包。它们既能单独使用,也相互协作,组成了一套代码分析生态 下面依次看每个包的细节。

laravel/surveyor — 静态分析引擎

laravel/surveyor 是一个静态分析工具,负责解析 PHP 文件,把类、方法、属性、返回类型等详细元信息以结构化的形式提供出去。它专注于把信息抽取成可供其他工具和包使用的形式。

安装

基本用法

分析文件

直接分析一个类

ClassResult 中可以取到的信息

类型系统

Surveyor 有一套完整的类型系统,可以把 PHP 类型结构化地处理。

缓存设置

可以缓存分析结果,改善反复执行时的性能。
也可以通过环境变量配置。

Eloquent 模型分析

Surveyor 会尝试连接数据库,对 Eloquent 模型做特殊分析。模型的关联、属性、访问器和 cast 也会被检测。
Surveyor 在分析 Eloquent 模型时会尝试连接数据库,因此并不是纯粹的静态分析。此外,性能和内存占用还在持续优化中,欢迎社区贡献。

laravel/ranger — 高层内省

laravel/ranger 封装了 surveyor,遍历整个 Laravel 应用,收集路由、模型、Enum、广播事件、环境变量、Inertia 组件等信息,是一个高层库。

安装

基本用法

以回调形式,声明各组件被发现时的处理逻辑。

Ranger 收集的组件


laravel/roster — 包检测工具

laravel/roster 是一个用于检测项目中安装了哪些 Laravel 生态包的工具。包开发者和工具作者可以借此轻松获知“这个项目是否使用了 Inertia?”、“Livewire 的版本是多少?”等信息。

安装

基本用法


实际用例

AI 指南生成工具(Boost)

Laravel Boost 使用 roster 来了解已安装的包组合,并据此自动调整发送给 AI 智能体(如 GitHub Copilot、Claude 等)的指南和技能。基于“项目是否用 Inertia?”、“是否装了 Livewire?”这些信息,选择合适的指南文件提供给 AI 智能体。

制作包兼容性检查器

如果你正在开发一个需要根据用户项目里已安装的包来切换行为的包,roster 会非常有用。

自动生成应用文档

使用 ranger,可以构建一个工具,自动收集 Laravel 应用的路由、模型、Enum,并生成文档。

总结

surveyor、ranger、roster 为 Laravel 生态提供了新的通过程序进行代码分析的基础。 这些包主要面向包开发者和工具作者,并不是普通终端用户直接使用的产品。但像 Laravel Boost 这样的 Laravel 官方工具也在其内部积极使用,未来会在生态中扮演越来越重要的角色。

laravel/surveyor

PHP 代码的静态分析引擎

laravel/ranger

高层内省库

laravel/roster

包检测工具
最后修改于 2026年7月18日