ホームページ  >  記事  >  バックエンド開発  >  ASTインスペクターとは何ですか? PHP AST ステップ デバッガーの使用方法は?

ASTインスペクターとは何ですか? PHP AST ステップ デバッガーの使用方法は?

藏色散人
藏色散人転載
2022-11-08 16:39:392888ブラウズ

この記事では、AST Inspector とは何か、および PHP AST ステップ デバッガーの使用方法を紹介します。困っている友人に役立つことを願っています~

PHPStan または学長、あなたも PHP プログラミング言語についてもっと学ぶ必要があります。

より正確には、インタプリタが PHP コードを解析する方法に関するものです。 PHP コードを解析した結果は、コードの構造を表すノード ツリーです。たとえば、クラスの定義ノード、メソッドの定義ノード、およびこれらのメソッド内の宣言ノードなどになります。

各ノードは、(PHPStan を使用して) エラーをチェックすることも、(Rector を使用して) 何らかの方法で自動的に再構築することもできます。 [推奨学習: PHP ビデオ チュートリアル ]

このノード ツリーは 抽象構文ツリー と呼ばれます。成功した PHPStan または Rector ルールは、最初にツリーの正しいノードから選択する必要がありますそして、ルールをこれらのノードに「サブスクライブ」します。一般的なアプローチは、新しいルールでノードの var_dump-ing または echo-ing を開始することですが、これは面倒だと思います。

だからこそ、特定の PHP ファイルのノードを検査できるシンプルなコマンド ライン ツールを作成しました。

このツールは AST Inspector と呼ばれ、GitHub にあります。

GitHub アドレス: https://github.com/matthiasnoback/php-ast-inspector/

Composer でインストールします。

composer require --dev matthiasnoback/php-ast-inspector

それから走ります。

vendor/bin/ast-inspect inspect [file.php]

次のような出力が表示されます。

Screenshot of PHP AST inspector

次または前のノードに移動してツリー内を移動したり、選択したノードの子ノードにジャンプしたりできます。ナビゲーションは、a、s、d、w キーを使用して簡単に実行できます。

現在、このプロジェクトは解析に PHP-Parser ライブラリを使用しています。 PHPStan は追加の仮想ノードを AST に追加するため、このツールで仮想ノードを表示すると便利ですが、追加の作業が必要になります。もう 1 つの興味深い追加機能は、検査対象のコード内の変数について PHPStan によって推定された型を表示することです。これには追加の作業も必要です...

それでは、このプログラムを試してみましょう。

以上がASTインスペクターとは何ですか? PHP AST ステップ デバッガーの使用方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。