Java 1〜25のソースをASTに変換するパーサーと、宣言や型を解決するシンボルソルバー。
nikic/PHP-Parser
PHPで書かれたPHPパーサー。PHPのソースコードをASTに変換し、静的解析やコード操作に活用できます。
- スター
- 17,467
- フォーク
- 1,145
- 未解決の Issue
- 75
- 最終コミット
- 一昨日
これは何?
PHP-ParserはPHP 7およびPHP 8のコードを抽象構文木(AST)に解析し、各ノードに位置情報を付与します。構文的に不正なコードも部分的なツリーとして解析できるため、編集中のコードを扱う必要があるツールにも役立ちます。
解析機能に加え、ツリーの読み取りや変更に使えるビジター付きノードトラバーサー、ASTをPHPコードに戻すpretty printer(部分的に変更されたツリーでは元の書式を保持)、名前空間付きの名前を解決する機能、定数式の評価機能を提供します。ビルダーを使うとコード生成用のASTノードを簡単に作成でき、ツリーはJSONとの相互変換も可能です。
このライブラリはComposer経由でインストールでき、PHPエコシステムのコード解析、リファクタリング、コード生成ツールの基盤として使われています。バージョン5.xはPHP 7.4以降で動作します。
主な機能
- 01PHP 7およびPHP 8のコードを、正確な位置情報付きのASTに解析します。
- 02構文的に不正なコードから部分的なASTを復元します。
- 03ASTをPHPコードに戻し、変更されていない部分の書式を保持します。
- 04ツリーの読み取りや変更に使えるビジターとトラバーサーを提供します。
- 05名前空間付きの名前を解決し、定数式を評価します。
- 06ASTをJSONにシリアライズし、JSONから復元します。
ユースケース
- PHPコードベース向けの静的解析ツールやlintツールの構築。
- PHPのソースファイルを書き換える自動リファクタリングスクリプトの作成。
- ASTビルダーを使ったPHPコードのプログラムによる生成。
- セキュリティ上の問題やコーディング規約違反を見つけるためのPHPコード解析。
クイックスタート
- 1
Composerでライブラリをインストールする
php composer.phar require nikic/php-parser - 2
READMEのコード例を使ってPHPコードをASTにパースし、ダンプする
使う前に知っておきたいこと
- バージョン5.xの実行にはPHP 7.4以降が必要です。バージョン4.xにはPHP 7.0以降が必要です。
トピック
よくある質問
- PHP-Parser とは?
- PHPで書かれたPHPパーサー。PHPのソースコードをASTに変換し、静的解析やコード操作に活用できます。 PHP-ParserはPHP 7およびPHP 8のコードを抽象構文木(AST)に解析し、各ノードに位置情報を付与します。構文的に不正なコードも部分的なツリーとして解析できるため、編集中のコードを扱う必要があるツールにも役立ちます。
- PHP-Parser は無料で使えますか?ライセンスは?
- PHP-Parser は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- PHP-Parser は今もメンテナンスされていますか?
- 活発にメンテナンス中。PHP-Parser の最終コミットは 2026年11月5日 です。
- PHP-Parser は何に使えますか?
- PHPコードベース向けの静的解析ツールやlintツールの構築。 PHPのソースファイルを書き換える自動リファクタリングスクリプトの作成。 ASTビルダーを使ったPHPコードのプログラムによる生成。 セキュリティ上の問題やコーディング規約違反を見つけるためのPHPコード解析。
- PHP-Parser のインストール方法は?
- Composerでライブラリをインストールする: php composer.phar require nikic/php-parser READMEのコード例を使ってPHPコードをASTにパースし、ダンプする
- PHP-Parser はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/nikic/PHP-Parser
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
通常のテキストではなくASTパターンにマッチさせて、コードの検索、Lint、書き換えを行うCLIツールです。
複数のリポジトリのソースコードにレシピを適用し、フレームワーク移行やセキュリティ修正を行うオープンソースの自動リファクタリングエンジン。
Swiftソースコードをソース位置に忠実な構文木として解析・検査・生成・変換するためのSwiftライブラリ群。
外部依存なしの純粋なPythonで書かれたC99/C11パーサー。CソースからASTを生成します。
TypeScript Compiler APIをラップし、TypeScriptやJavaScriptのコードを解析・プログラムから変更できるライブラリ。