PhpStorm によるデバッグ

PhpStorm と Xdebug による PHP のデバッグを最大限に活用しましょう。

ブレークポイントの設定と管理

PhpStorm のデバッグ GUI には汎用のブレークポイントツールが備わっています。条件付きブレークポイントを使用すると、ループ内の特定項目などのヒット条件をターゲットにできます。例外が発生したときにキャッチする必要がある場合は、例外ブレークポイントを使用し、プロジェクトのコードベース全体に適用させることができます。

ブレークポイントとその設定はソースコードに影響しませんが、PhpStorm プロジェクトと一緒に保存してデバッグセッションで再利用できます。

コード行単位でのステップ実行

制御フローをデバッグして実行対象コードの行単位でデータ構造を調べる場合、あらゆる箇所にブレークポイントを設定する必要はありません。代わりに Debug(デバッグ)ツールウィンドウでコードをステップ実行し、各ステップで現在のフレームスタックと変数を調べることができます。

特定の関数にステップインし、行単位でより細かくデバッグすることもできます。

仮説のテストとコード動作の理解

対話型デバッグウィンドウ

PhpStorm の対話型 Debug(デバッグ)ツールウィンドウでは、ソースコードを変更することなく変数の変更、PHP 関数の呼び出しまたは定義、または任意の式の評価などを行い、現在のプログラムの状態をさまざまな方法で操作できます。

インラインデバッガー

プログラムを一時停止中は Debug(デバッグ)ツールウィンドウだけでなく、コードエディター内でインラインで変数の値を確認したりウォッチを追加したりできます。変更された値はハイライトされるため、そのブレークポイントに最後に到達したときから何が変更されたかを簡単に確認できます。

データフローの予測

PhpStorm はブレークポイントで PHP デバッガーから受け取ったデータを使用し、実行対象のコードで何が発生するかを伝えるエディター内ヒントを表示します。パス内にある到達不能と予測されたコードブロックはグレー表示されます。

どこでもデバッグ

ローカルおよびリモートデバッグ

コードの実行環境が Docker コンテナー、仮想マシン、SSH 接続先のリモートホストなどのリモートウェブサーバーのどれであっても、実行対象コードの行単位でデバッグのライブデータを取得できます。PhpStorm でサーバーファイルを PhpStorm プロジェクトに内のコピーにマッピングし、Xdebug をセットアップし、受信デバッグ接続へのリッスンを有効化できます。

JavaScript のデバッグ

PhpStorm には WebStorm の本格的な JavaScript デバッガーが備わっています。ブラウザー内の JavaScript と Node.js の両方をサポートしており、Xdebug および JavaScript デバッガーを同時に起動することも可能です。

Blade および Twig テンプレート内のデバッグ

Blade および Twig テンプレート内にブレークポイントを設定し、PHP ファイルと同じようにステップデバッグできます。コンパイルされたファイルにテンプレートコードの参照がありませんか?PhpStorm はユーザーが設定したブレークポイントがキャッチされないことを警告します。

HTTP API 呼び出しのデバッグ

PhpStorm のエディターに組み込まれた HTTP クライアントから直接 PHP サーバーへの HTTP リクエストをデバッグできます。この IDE は Xdebug Cookie をリクエストに自動的に追加してリクエストを実行し、関連する PHP ファイルで指定されたブレークポイントで停止します。

プロファイリングデータの表示と解析

PhpStorm はデバッグだけでなく、Xdebug が生成したプロファイリングデータのビジュアルレポートの作成にも対応しています。複数のスナップショットをまとめて選択すると、集計されたプロファイリング情報を収集できます。集計されたレポートでは、実行統計から PHP コードの関連する関数に直接移動できます。

面倒なセットアップを IDE にお任せ

Xdebug 構成の検証

PhpStorm はローカルまたはリモートウェブサーバー上の Xdebug インストール環境からデータを取得し、IDE 内で柔軟性に優れた強力なデバッグ機能を使用できるようにしています。この IDE は構成を簡単に行えるようにするため、関連する環境のデバッガー構成を検証し、検出された問題に対する解決策を提案します。

ゼロ構成デバッグ

ゼロ構成デバッグの場合、ブラウザーで PHP アプリケーションの開始ページを開いてデバッグエンジンを有効化するだけです。PhpStorm はデバッガーからの接続をリッスンし、視覚的なデバッグデータを表示します。