PhpStorm 2024.1 ヘルプ

データフローを分析する

導入

PhpStorm は、継承プロジェクトコードの理解、コードの複雑な部分の解釈、ソース内のボトルネックの発見など、コード考古学を支援するデータフロー分析機能を提供します。

具体的には、ここからのデータフロー機能を使用する

  • 変数に割り当てられた値の元の場所を参照してください。

  • 変数が持つ可能性のあるすべての値を調べます。

  • 式 \ 変数 \ メソッドのパラメーターが流入する場所を確認してください。

キャレットでパラメーターに渡された値をトレースバックする場合は、コード | コードの解析 | ここまでのデータフローコマンドを使用してソースコードのスライスビューを作成できます。さらに、コード | コードの解析 | ここからのデータフローコマンドを使用すると、式が流れ込む場所を見つけることができます。各データフロー分析の結果は、データフローを分析するツールウィンドウの専用タブに表示されます。

データフローの分析

シンボルとの間のデータフローを分析するには:

  1. 編集するファイルを開きます。キャレットで移動するを参照してください。

  2. キャレットを解析対象シンボルに置きます(式 \ 変数 \ メソッドパラメーター)。

  3. 目的に応じて、メインメニューのコード | コードの解析 | ここまでのデータフローを分析するまたはコード | コードの解析 | ここからデータフローを分析するに移動します。

  4. 分析範囲を指定し、テストコードから来るすべての値を無視するかどうかを選択します。

  5. OK をクリックします。レビューの解析結果は、専用のデータフローを分析するツールウィンドウに表示されます。

データフロー分析の結果を調べる

以下のセクションでは、データフロー解析結果を「読み込む」方法について簡単に説明します。

ここまでのデータフロー

  • ツリーを展開して、シンボルにつながる割り当てとメソッド呼び出しのチェーンを掘り下げます。背景が灰色のノードは重複 (ツリー内の別の場所にすでに存在する使用箇所) を示します。以下のイメージは、ここまでのデータフロー解析結果の例を示しています。

    ps_dataflow_tree.png

    このビューの値は次の方向に流れます。dataflow.php$result フィールドの値は、$p および $s パラメーターを使用して呼び出された Calculate($m,$n) メソッドが $f を返す $result = Calculate($p,$s) 割り当てステートメントから取得されます。$f の値は、$d および $e パラメーターなどを使用して呼び出される Division($a,$b) メソッドから取得されます。

  • 割り当てとメソッド呼び出しのコードを表示するには、the Show diff icon トグルボタンを押します。PhpStorm は、ツリー内で現在選択されている割り当てまたは呼び出しのコードを示すプレビューペインを追加します。コードがハイライトされます。

    ps_dataflow_preview.png
  • 割り当てまたは呼び出しのソースコードに移動するには、ツリー内の関連する行をダブルクリックします。

ここからのデータフロー

階層図はここまでのデータフロー分析の結果と似ていますが、値は反対方向に流れます。

関連ページ:

ソースコードナビゲーション

さまざまなアクションやポップアップを使用して、エディター内のコードを素早く移動することができます。エディターウィンドウとツールウィンドウ間の移動に関する詳細情報については、エディターの基本を確認してください。PhpStorm で利用可能なナビゲーションオプションをチェックするためにビデオチュートリアルを見ることから始めることができます。キャレットで移動する後方に移動するには、を押します。前方に移動するには、を押します。最後に編集した場所に移動するには、を押します。エディターで現在のキャレッ

ファイル構造

PhpStorm を使用すると、構造ツールウィンドウおよび構造ポップアップでファイルの構造を表示および移動できます。プロジェクトがバージョン管理されている場合、構造ツールウィンドウと構造ポップアップに VCS ステータスの色が表示されます。これは、ファイルの変更を追跡できます。変更されたオブジェクトの名前は青色になり、新しく追加されたオブジェクトの名前は緑色でハイライトされます。構造のアイコンにマウスを合わせると、ツールチップにアイテムに関する追加情報が表示されます。構造ポップアップ:ポップアッ...

外部スタックトレースを分析する

たとえば、QA エンジニアなどの他の人が受け取った例外を分析したり、デッドロックやハングアップの問題を調査することができます。デバッグモードまたは単体テストの実行時に発生する例外とは異なり、これらの例外には、ソースコード内の対応する場所に移動するのに役立つリンクはありません。PhpStorm を使用すると、例外またはフルスレッドダンプをコピーして Stack Trace Analyzer に貼り付け、情報を調べて対応するソースコードに移動できます。メインメニューで、に移動します。開いたスタックト...