Поддержка PHP в Maguyva: долгоживущие веб-приложения без слепых правок
Актуально, когда кодовая база на PHP всё ещё приносит выручку, но никто не хочет, чтобы агент своевольничал в ней.
Расширения
.php, .php3, .php4, .php5, +ещё 2
Maguyva поддерживает Perl с AST, символами и графом, чтобы ИИ-агенты отслеживали пакеты, подпрограммы, импорты use и require и конструкторы в унаследованном Perl.
Код на Perl плотный, гибкий и часто написан людьми, ушедшими много лет назад. Сигилы меняют смысл имени, пакеты одновременно служат классами, а один и тот же модуль загружают скрипты из многих каталогов. Текстовый поиск находит строки, но не говорит агенту, какую подпрограмму скрипт вызывает на самом деле.
Maguyva даёт агенту пакеты, подпрограммы, импорты и конструкторы в виде структуры, чтобы он очертил границы изменения, прежде чем трогать код.
Maguyva охватывает .pl, .pm, .t, .pod и .perl. Подпрограммы извлекаются как функции, объявления package — как классы, а из имён определений удаляются сигилы ($, @, %, &, *), поэтому переменные и подпрограммы ищутся по голому имени.
Импорты строятся из операторов 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
Используйте с именем пакета или подпрограммы; сигилы удаляются, поэтому ищите по голому имени.
Используйте обход incoming для общего модуля, чтобы увидеть, какие скрипты и пакеты от него зависят.
Используйте для отфильтрованных встроенных функций, ключей конфигурации и SQL-строк, которые граф вызовов не охватывает.
Похожие гайды
Актуально, когда кодовая база на PHP всё ещё приносит выручку, но никто не хочет, чтобы агент своевольничал в ней.
Расширения
.php, .php3, .php4, .php5, +ещё 2
Полезно, когда кодовые базы на Python разрастаются по сервисам, скриптам, тайп-стабам и эксплуатационному связующему коду.
Расширения
.py, .pyi, .pyw