# MaguyvaのPHP対応: 当てずっぽうの編集をせずに、息の長いWebアプリを扱う

Canonical source: https://maguyva.ai/ja/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はAST解析とシンボル抽出によりPHPに対応しており、AIエージェントはgrepよりも高い構造理解をもって、Laravelアプリ、独自フレームワーク、WordPress時代のコード、その他の息の長いPHPリポジトリをナビゲートできます。

## 対応状況スナップショット

- 対応レベル: AST・シンボル対応
- プログラミング
- 拡張子: .php, .php3, .php4, .php5, .phps, .phtml
- 構文を考慮した検索と構造コンテキストのための実際のAST解析。
- 名前付きシンボルはセマンティック検索と相互参照に利用されます。関係抽出が有効な場合は、グラフナビゲーションも利用できます。
- この言語は、グラフを考慮した検索にシンボルと関係情報を提供します。対応するエッジの種類は、その言語固有の構文要素によって異なります。
- AST解析とシンボル抽出の両方に対応しています。

## 最適な用途

- 運用上いまだに重要な、Laravel、独自PHP、または混在型モノリスのリポジトリ。
- 今ではJavaScriptのフロントエンドやインフラコードと隣り合っている、古いWebアプリケーションを保守するチーム。
- 変更する前に既存のフローを理解することを優先する、AI支援型のリファクタリング作業。

## エージェントワークフロー

- 編集する前に、ルート、コントローラー、サービス、共有ヘルパーのパスをたどる。
- 新しいパターンを発明するのではなく、成熟したPHPコードベース全体から繰り返される実装パターンを見つける。
- いくつものフレームワークやホスティングの時代を生き抜いてきた古いコードから、構造を復元する。

## PHPに構造を理解した検索が必要な理由

PHPは、幅広い言語対応が願望ではなく現実のものである必要がある理由を、最もはっきり示す例の1つです。重要なシステムの多くは、今もPHPのシステムです。Laravelアプリ、古いモノリス、社内の管理ツール、そしてあらゆる計画的な書き直しを生き延びてきた大幅にカスタマイズされたWebアプリケーションなどです。

そうしたリポジトリにおいて、問題は構文ではありません。長年にわたってヘルパー、フレームワークの慣習、ローカルな近道が積み重なったコードベースから、安全に構造を復元することです。

## MaguyvaがPHPで実際に抽出するもの

Maguyvaは定義から`$`記号を取り除き、メンバー修飾された呼び出しを正規化し、PHPの組み込み関数によるノイズの大部分を関係グラフからフィルタリングします。これはまさに、検索や依存関係のビューが役に立つようになる前に、古いPHPコードが必要としている類の整理です。

また、`.php`や`.phtml`から、息の長い資産に今も現れる古いバージョンの拡張子まで、PHPのチームが実際に遭遇するファイル形式にも対応しています。

## 息の長いPHPアプリに役立つMCPワークフロー

生産的なパターンは、たいてい次のとおりです。

- `find_symbol` — 名前が安定しているコントローラー、サービス、モデル、ヘルパークラスに対して。
- `text_pattern_search` — ルート名、ヘルパー呼び出し、古いフレームワークの慣習に対して、正確なテキストが依然として最短経路であるとき。
- `get_task_context` — コードパスが乱雑で、編集する前に関連情報をまとめた要約が欲しいとき。

## このページが役立つ場面

このページは、「今も重要なPHPを運用している」というシンプルな実践的疑問を持つチームのためのものです。フロントエンドが最新のJavaScriptにある場合は、次に[JavaScript](/ja/languages/javascript)を読んでください。リポジトリの周辺により新しいサービス層や自動化層がある場合は、[Python](/ja/languages/python)がより関連性の高い併読先です。

## エンジンの詳細

- PHPは定義から `$` 記号を除去し、メンバープレフィックス付きの呼び出しを正規化するため、ヘルパーの多い古いコードでも一貫して検索しやすくなります。
- 対応範囲は `.php`、`.php3`、`.php4`、`.php5`、`.phtml`、`.phps` など一般的なPHPファイル形式をカバーしています。
- 大規模な組み込み関数フィルターによりPHP標準ランタイム由来の関係が除外され、グラフはアプリケーションコードに集中できます。

## 役立つMCPエントリーポイント

- `find_symbol`: リポジトリにまだ識別可能なシンボル名が残っている場合、コントローラー、サービス、モデル、ヘルパークラスに対して使用してください。
- `text_pattern_search`: 構造だけでは不十分な場合、ルート名、ヘルパー呼び出し、古いフレームワークの慣習を検索する際に使用してください。
- `get_task_context`: 古いPHPのフローを変更する前に、まとまった要約が必要なときに便利です。
