Maguyva 对 PHP 的支持:让长期运行的 Web 应用告别盲目修改
适合那些仍在持续创造营收、但没人希望智能体在其中随意发挥的 PHP 代码库。
扩展名
.php, .php3, .php4, .php5, 还有 2 个
Perl 代码紧凑、灵活,而且往往出自多年前就已离开的人之手。sigil 会改变名称的含义,包同时充当类,同一个模块会被许多目录下的脚本加载。文本搜索能找到字符串,却不能告诉智能体一个脚本实际调用的是哪个子程序。
Maguyva 把包、子程序、导入和构造器作为结构交给智能体,让它在动代码之前先划定修改的范围。
Maguyva 覆盖 .pl、.pm、.t、.pod 和 .perl。子程序被提取为函数,package 声明被提取为类,定义名中的 sigil($、@、%、&、*)会被去掉,因此变量和子程序都可以按裸名称搜索。
导入来自 use、require 和 package 语句。Class->new 形式的方法调用计为实例化,bless 和 tie 被特意保留在调用图中。图谱还记录继承、重写、类型引用、读写以及异常抛出。
约 189 个内置函数(print、open、die、warn 等)会从调用关系中过滤掉,让仓库自身的代码更加突出。
Billing::Invoice,它们调用了其中哪些子程序?”(dependency_search 的 incoming 方向)Report::Monthly 在哪里被构造,->new 之后发生了什么?”(先用 find_symbol,再用 get_task_context)Auth::Session 的测试文件。”(先用 text_pattern_search,再用 find_symbol)sub 声明,因此在结构搜索中只有较新的专用 method 语法会被归类为方法。对于较早的面向对象 Perl,请使用 functions 预设。open 或 print 调用时,请使用 text_pattern_search。通过快速入门连接仓库,然后在兼容性页面查看支持矩阵。如果这些资产正在迁移到另一种脚本语言,请对照阅读 Python 指南。
最适合场景
智能体工作流
引擎细节
常用 MCP 入口工具
用包名或子程序名查找;sigil 会被去掉,所以请按裸名称搜索。
对共享模块使用 incoming 遍历,查看哪些脚本和包依赖它。
用于查找调用图之外的已过滤内置函数、配置键和 SQL 字符串。
相关指南