# Поддержка PHP в Maguyva: долгоживущие веб-приложения без слепых правок

Canonical source: https://maguyva.ai/ru/languages/php

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva поддерживает PHP с разбором AST и извлечением символов, чтобы ИИ-агенты могли ориентироваться в приложениях на Laravel, самописных фреймворках, коде эпохи WordPress и других долгоживущих PHP-репозиториях с большей структурой, чем даёт grep.

## Сводка поддержки

- Уровень: Поддержка AST и символов
- Программирование
- Расширения: .php, .php3, .php4, .php5, .phps, .phtml
- Настоящий AST-разбор для синтаксически осведомлённого поиска и структурного контекста.
- Именованные символы обеспечивают семантический поиск и перекрёстные ссылки. Навигация по графу доступна, когда включено извлечение связей.
- Этот язык добавляет символы и связи в поиск с учётом графа; поддерживаемые типы рёбер зависят от присущих ему конструкций.
- Доступны и AST-разбор, и извлечение символов.

## Лучше всего подходит

- Репозитории на Laravel, самописном PHP или смешанные монолиты, которые по-прежнему важны для эксплуатации.
- Команды, поддерживающие более старые веб-приложения, которые теперь соседствуют с фронтендами на JavaScript и инфраструктурным кодом.
- Рефакторинг с помощью ИИ, где приоритет — понять существующий поток выполнения, прежде чем его менять.

## Сценарии работы агента

- Проследить путь маршрута, контроллера, сервиса или общего хелпера перед его изменением.
- Найти повторяющиеся паттерны реализации в зрелой кодовой базе PHP вместо изобретения новых.
- Восстановить структуру в старом коде, пережившем несколько эпох фреймворков или хостинга.

## Почему PHP нужен поиск с учётом структуры

PHP — один из самых наглядных примеров того, почему широкая поддержка языков должна быть реальной, а не декларативной. Многие важные системы до сих пор написаны на PHP: приложения на Laravel, старые монолиты, внутренние админ-инструменты и сильно кастомизированные веб-приложения, пережившие все запланированные переписывания.

В таких репозиториях проблема не в синтаксисе. Она в том, чтобы безопасно восстановить структуру кодовой базы, которая годами обрастала хелперами, соглашениями фреймворка и локальными хитростями.

## Что Maguyva реально извлекает в PHP

Maguyva убирает сигил `$` из определений, нормализует вызовы с префиксом члена и отфильтровывает очень большой объём шума от встроенных функций PHP в графе связей. Именно такая очистка нужна старому PHP-коду, прежде чем поиск и представления зависимостей станут полезными.

Maguyva также поддерживает форматы файлов, с которыми реально сталкиваются PHP-команды — от `.php` и `.phtml` до расширений файлов, использовавшихся в старых версиях PHP, которые всё ещё встречаются в долгоживущих системах.

## Полезные MCP-сценарии для долгоживущих PHP-приложений

Продуктивный паттерн обычно такой:

- `find_symbol` для контроллеров, сервисов, моделей или вспомогательных классов со стабильными именами.
- `text_pattern_search` для имён маршрутов, вызовов хелперов или старых соглашений фреймворка, когда точный текст всё ещё самый быстрый путь.
- `get_task_context`, когда путь кода запутан и перед редактированием нужна сводка, объединяющая найденные сведения.

## Когда эта страница полезна

Эта страница — для команд, чей практический вопрос звучит просто: «у нас всё ещё крутится важный PHP». Если фронтенд живёт на современном JavaScript, читайте далее [JavaScript](/ru/languages/javascript). Если в репозитории есть более новые сервисные или автоматизационные слои по краям, страница [Python](/ru/languages/python) — более уместный спутник.

## Детали движка

- PHP убирает символ `$` из определений и нормализует вызовы с префиксом члена, что упрощает единообразный поиск по старому коду с большим количеством хелперов.
- Поддержка охватывает типичные форматы файлов PHP, включая `.php`, `.php3`, `.php4`, `.php5`, `.phtml` и `.phps`.
- Крупный фильтр встроенных функций убирает вызовы стандартных функций рантайма PHP, чтобы граф оставался сосредоточен на прикладном коде.

## Полезные точки входа MCP

- `find_symbol`: Используйте его для контроллера, сервиса, модели или класса-хелпера, когда в репозитории ещё есть узнаваемые имена символов.
- `text_pattern_search`: Используйте его для имён маршрутов, вызовов хелперов или старых соглашений фреймворка, когда одной структуры недостаточно.
- `get_task_context`: Полезно, когда перед изменением старого потока выполнения PHP нужна сводка, объединяющая найденный контекст.
