Repolode
nikic

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. 1

    Composerでライブラリをインストールする

    php composer.phar require nikic/php-parser
  2. 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 の数値は毎日更新されます。

関連プロジェクト