PhpStorm 2025.3 ヘルプ

データフローを分析する

導入

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

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

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

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

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

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

データフローの分析

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

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

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

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

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

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

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

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

ここまでのデータフロー

  • ツリーを展開して、シンボルにつながる割り当てとメソッド呼び出しのチェーンを調べます。灰色の背景のノードは重複 (ツリー内の別の場所にすでに存在する使用) を示します。

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

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

ここからのデータフロー

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

2024 年 10 月 10 日

関連ページ:

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

さまざまなアクションとポップアップを使用して、エディター内のコード内をすばやく移動できます。PhpStorm で利用可能なナビゲーションオプションをチェックするためにビデオチュートリアルを見ることから始めることができます。キャレットで移動する前のキャレット位置を見るには、メインメニューからを選択するか、を押します。前に進むには、を選択するかを押します。エディターの上部にすばやく移動するには、を押します。キャレットをエディターの下部に移動するには、を押します。最後に編集した場所に移動するに

ファイル構造

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

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

デッドロックや応答しない UI などの問題を調査するために、他のユーザーが受け取った例外を分析したい場合があります。PhpStorm では、例外スタックトレースまたは完全なスレッドダンプを表示できます。表示中に、実行またはデバッグツールウィンドウから取得したかのように、使用してソースコードに移動できます。メインメニューで、に移動します。開いたスタックトレースの分析ダイアログで、外部スタックトレースまたはスレッドダンプをここにスタックトレースを配置する: テキスト領域に貼り付けます。OK をクリック...