PHP Support in Maguyva: Long-Lived Web Apps Without Blind Edits
Relevant when a PHP codebase is still shipping revenue but nobody wants an agent freelancing through it.
Extensions
.php, .php3, .php4, .php5, +2 more
Maguyva parses Perl with AST, symbol, and graph support, so AI agents can follow packages, subroutines, use and require imports, and constructors in legacy Perl.
Perl code is dense, flexible, and often written by people who left years ago. Sigils change a name’s meaning, packages double as classes, and the same module is loaded by scripts in many directories. A text search finds the strings; it does not tell an agent which subroutine a script actually calls.
Maguyva gives the agent packages, subroutines, imports, and constructors as structure, so it can scope a change before touching the code.
Maguyva covers .pl, .pm, .t, .pod, and .perl. Subroutines are extracted as functions and package declarations as classes, and definition names have their sigils ($, @, %, &, *) stripped so variables and subroutines are searchable by their bare names.
Imports come from use, require, and package statements. Method calls of the form Class->new count as instantiation, and bless and tie are kept in the call graph on purpose. The graph also records inheritance, overrides, type references, reads and writes, and exception raises.
About 189 built-in functions (print, open, die, warn, and similar) are filtered from call relationships so repository code stands out.
Billing::Invoice, and which of its subroutines do they call?” (dependency_search incoming)Report::Monthly constructed, and what happens after ->new?” (find_symbol, then get_task_context)Auth::Session.” (text_pattern_search, then find_symbol)sub declarations inside a package, so only the newer dedicated method syntax is classified as a method in structural search. Use the functions preset for older object-oriented Perl.text_pattern_search when you need every open or print call.Connect a repository with the quickstart, then check the support matrix on the compatibility page. If the estate is moving to another scripting language, compare the Python guide.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Use it for a package or subroutine name; sigils are stripped, so search by the bare name.
Use incoming traversal on a shared module to see which scripts and packages depend on it.
Use it for filtered built-ins, config keys, and SQL strings that the call graph leaves out.
Related guides
Relevant when a PHP codebase is still shipping revenue but nobody wants an agent freelancing through it.
Extensions
.php, .php3, .php4, .php5, +2 more
Useful when Python codebases sprawl across services, scripts, type stubs, and operational glue.
Extensions
.py, .pyi, .pyw