PhpStorm 2020.3 ヘルプ

デバッグ

このページは、PHP プラグインが有効になっている場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトでアクティブになっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にします。

このページを使用して、Xdebug と Zend デバッガーの動作を設定します。

項目 説明
事前構成 この領域には、デバッガーのインストール、デバッガーのクッキーを制御してデバッグセッションを開始 / 停止するを実行するブックマークレットの生成、およびゼロコンフィギュレーションデバッグの起動に関する簡単なガイドラインが示されています。
外部接続

この領域で、PhpStorm がホストから受信した接続、およびデプロイサーバー構成として登録されていないポートを介した接続をどのように処理するかを指定します。

  • 未登録のサーバー構成による外部接続を無視する : PhpStorm がデプロイサーバー構成として登録されていないホストおよびポートから受信した接続を無視するようにするには、このチェックボックスを選択します。このチェックボックスが選択されていると、PhpStorm はデプロイサーバー構成を自動的に作成しようとしません。

  • PHP スクリプトの最初の行で中断する : このチェックボックスを選択すると、デバッガーと PhpStorm との間の接続が確立されるとすぐに(最初のブレークポイントに達するまで自動的に実行されるのではなく)デバッガーが停止します。あるいは、メインメニューから実行 | PHP スクリプトの最初の行で中断するオプションをオンにします。

  • 最大同時接続数 : このスピンボックスを使用して、同時に処理できる外部接続の数を制限します。

Xdebug

この領域のコントロールを使用して、Xdebug ツールを使用してデバッグを設定します。

  • デバッグポート : このフィールドで、PhpStorm と Xdebug エンジンが通信するためのポートを指定します。

    これは、php.ini ファイルで指定されているものと同じポート番号である必要があります。

    xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"
    xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"

    デフォルトでは、Xdebug2 はポート 9000 でリッスンします。Xdebug 3(英語) の場合、デフォルトのポートが 9000 から 9003 に変更されました。複数のポートをコンマで区切って指定できます。デフォルトでは、デバッグポート値は 9001,9003 に設定されており、PhpStorm が両方のポートで同時にリッスンします。

  • 外部接続を受け入れ可能 : このチェックボックスを選択すると、PhpStorm がデバッグポートフィールドで指定されたポートを介して Xdebug エンジンからの受信接続を受け付けるようになります。

  • 現在の行で使用できない場合はブレークポイントを解決します (Xdebug 2.8+) : 選択すると、Xdebug ブレークポイント解決メカニズムのサポートが PhpStorm で有効になります。このメカニズムでは、デバッガーは、PHP が現在の行の内部実行可能バイトコードを生成できるかどうかを評価します。そのようなコードが行に対して生成されない場合、対応するブレークポイントにヒットできません。Xdebug は最大 5 行までスキャンし、実行可能コードが配置されている行で停止します。ブレークポイントの解決は、Xdebug 2.8 以降でサポートされています。

  • パスマッピングが指定されていないときに最初の行で強制的にブレークする : このチェックボックスを選択すると、サーバーページでプロジェクト内のどのファイルにもマップされていないファイルをデバッガーが到達してすぐに開くようにすることができます。デバッガーはこのファイルの最初の行で停止し、変数の調査 / 更新は次のエラーメッセージを表示します: サーバー上のファイルのローカルコピーを見つけることができません <サーバー上のファイルへのパス> とリンククリックしてマッピングを設定します。リンクをクリックしてパスマッピングの問題を解決するダイアログを開き、問題のあるファイルをそのローカルコピーにマップします。

    このチェックボックスをオフにすると、デバッガーはマップされていないファイルに到達して開くときに停止せず、ファイルが処理されただけでエラーメッセージは表示されません。

  • スクリプトがプロジェクト外にあるときに最初の行で強制的にブレークする : このチェックボックスをオンにすると、デバッガーは現在のプロジェクトの外側に到達してファイルを開くとすぐに最初の行で停止します。このチェックボックスをオフにすると、デバッガーは現在のプロジェクトの外側にあるファイルを開いても続行します。

Zend デバッガー

この領域のコントロールを使用して、Zend デバッガーツールを使用してデバッグを設定します。

  • デバッグポート : このフィールドには、PhpStorm と Zend デバッガーエンジンが通信するポートを指定します。 zend_debugger.tunnel_min_portzend_debugger.tunnel_max_port を介して php.ini ファイルで指定されたトンネル内のポート番号を入力します。詳しくは Zend デバッガー - 構成ディレクティブ(英語)を参照してください。

  • 外部接続を受け入れ可能 : このチェックボックスを選択すると、PhpStorm がデバッグポートフィールドで指定されたポートを介して Zend デバッガーエンジンからのすべての受信接続を受け付けるようになります。

  • ブロードキャストポートの設定 : このフィールドでは、デバッガー設定がブラウザーのデバッグツールバーに渡されるポートを指定します。

  • 自動検出 IDE IP : このチェックボックスが選択されていると、PhpStorm は debug_host パラメーターを通して Zend デバッガーに送信されるすべてのホスト IP アドレスを検出します。検出されたすべての IP アドレスが右側のフィールドに表示されます。IP アドレスの自動検出は、VagrantVirtualBox、またはその他の仮想化ツールを使用するときに役立ちます。

    チェックボックスをオフにしてホスト IP アドレスの自動検出をブロックし、必要なアドレスをフィールドに明示的に指定します。

  • Z-Ray システム要求を無視する : このチェックボックスを選択すると、PhpStorm デバッガーを頻繁に呼び出して煩わしさを感じた場合に Z-Ray システム(英語)からの要求をブロックします。

評価
  • デバッグコンソールで配列とオブジェクトの子を表示する : このチェックボックスを選択して、コンソールペインに配列とオブジェクトの出力を表示します。チェックボックスがオフの場合、出力は表示されません。

  • 値ヒントおよび監視フレームのセーフ評価モード :

    • このチェックボックスをオンにすると、PhpStorm は評価対象の式またはコードフラグメントに未定義の要素が含まれていないことを確認し、検出された不一致をユーザーに通知します。

    • チェックボックスをオフにすると、評価中に PhpStorm が未定義の要素に遭遇した場合に例外が表示されます。

    詳細は式の評価を参照してください。

  • 名前空間をインポートし、評価コンテキストからステートメントを使用する : このチェックボックスを選択すると、デバッグセッション中に PhpStorm は現在のネームスペースと実行ポイントでインポートされたすべてのネームスペースを認識します。この情報は、ウォッチ式および式の評価の計算と表示に使用され、PhpStorm デバッグ評価が PHP コード実行の実際の結果と確実に一致するようにします。
    デフォルトでは、チェックボックスが選択されています。

    次のコードを実行した結果は true です(またはブラウザーで 1 が表示されます)。

    namespace Too\Car; class Car{} $my_car = new Car(); echo $my_car instanceof Car;

    名前空間をインポートしてステートメントを使用する... チェックボックスが選択されている場合、$my_car instanceof Car 式と $my_car instanceof Car ウォッチを評価すると、次の結果も表示されます。

    ps_debug_import_namespace_on.png

    ただし、チェックボックスをオフにすると、ウォッチ式式の評価はグローバルコンテキストで実行されます。つまり、$my_car instanceof Car の代わりに、完全修飾クラス名 $my_car instanceof \Too\Car\Car を使用する必要があります。

拡張設定
  • デプロイ構成からパスのマッピングを検出する :

    • このチェックボックスを選択すると、PhpStorm は、サーバーアクセス構成デプロイ構成からリモート環境でデバッグするためのパスマッピングを取得しようとします。

    • チェックボックスをオフにすると、手動でパスマッピングを指定する必要があります。

    詳細は、デバッグエンジンの構成を検証するおよびリモート PHP インタープリターの構成を参照してください。

  • デバッグセッションが一時停止せずに完了した場合に通知する : このチェックボックスを選択すると、ゼロコンフィギュレーションデバッグ中にブレークポイントにヒットしなかったときに PhpStorm が通知を表示します。これは、パスマッピングが構成されていないか、誤って構成されている場合、またはブレークポイントを設定していない場合に発生する可能性があります。後者の場合、次のいずれかを実行できます。

    • 目的の実行可能なコード行でガターをクリックして、ブレークポイントを設定します。詳細については、ブレークポイントを参照してください。

    • 設定 / 環境設定ダイアログ Ctrl+Alt+S言語 & フレームワーク | PHP | デバッグに移動し、外部接続領域で PHP スクリプトの最初の行で中断するチェックボックスを選択します。

    • メインメニューから実行 | PHP スクリプトの最初の行で中断するオプションを有効にします。

    チェックボックスがオフの場合、デバッグセッションは確立されず、PHP スクリプトは中断されることなく実行されます。

  • コマンドラインから必要な構成オプションを渡す (デバッグ拡張を手動で使用可能にする必要があります) : このチェックボックスを選択すると、デバッガー設定オプションがコマンドラインを介して渡されます。

  • ブレークポイントが別の行に解決されたかどうかを通知します (Xdebug 2.8+) : 選択すると、PhpStorm はブレークポイントが解決されたときに通知を表示します。これを機能させるには、Xdebug ブレークポイント解決を有効にする必要があることに注意してください。

関連ページ:

プラグインを管理する

このサイトのメニューやアクション名表記は日本語です。PhpStorm を日本語化するには、日本語言語パックのインストールを参照してください。プラグインは以下に示すように PhpStorm のコア機能を拡張します。バージョン管理システム、アプリケーションサーバー、およびその他のツールとの統合を提供する、さまざまな言語とフレームワークのコーディング支援サポートを追加する、ショートカットヒント、ライブプレビュー、ファイルウォッチャーなどで生産性を向上、コーディング演習と検証で新しいプログラミング言語を...

PHP デバッグセッション

デバッグを開始する前に、デバッグエンジンが正しくインストールされ、正しく構成されていることを確認してください。PhpStorm は、2 つの最も一般的なツール、Xdebug と Zend デバッガーでデバッグをサポートしています。これらのツールは、互いにブロックするため同時に使用することはできません。この問題を回避するには、Xdebug を構成するおよび Zend デバッガーの構成の説明に従って、php.ini ファイルの対応するセクションを更新する必要があります。PhpStorm を使用すると、実行...

ゼロコンフィギュレーションデバッグ

ゼロコンフィギュレーションデバッグの場合、デバッグ構成を作成する必要はありません。代わりに、PHP アプリケーションの開始ページをブラウザーで手動で開き、ブラウザーからデバッグエンジンをアクティブにし、PhpStorm は受信デバッガー接続を待機します。デバッグセッションを開始する:デバッグを開始する前に、デバッグエンジンが正しくインストールされ、正しく構成されていることを確認してください。PhpStorm は、2 つの最も一般的なツール、Xdebug と Zend デバッガーでデバッグをサポート...

サーバー

このページは、PHP プラグインが有効になっている場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトでアクティブになっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にします。このページでは、デバッグエンジンの HTTP アクセスをローカルおよびリモート Web サーバーと対話し、サーバー上のファイルと PhpStorm プロジェクト内のローカルコピー間の対応を設定します。...

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッセージの書き込みなど)を伴う場合があります。一度設定すると、ブレークポイントは、一時的なブレークポイントを除いて、明示的に削除するまでプロジェクトに残ります)。ブレークポイントを持つファイルが外部で変...

中断されたプログラムの調査

デバッガーセッションの開始後、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。ブレークポイントがヒットしました、プログラムを手動で一時停止して再開する、その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。誤ってデバッグツールウィンドウを閉じた場合は、メインメニューからを選択するか、を押して再度開きます。フレームを調べる:プログラムの状態はフレームで表されます。プログラムが一時停止