PhpStorm 2020.3 ヘルプ

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

ゼロコンフィギュレーションデバッグの場合、デバッグ構成を作成する必要はありません。代わりに、PHP アプリケーションの開始ページをブラウザーで手動で開き、ブラウザーからデバッグエンジンをアクティブにし、PhpStorm は受信デバッガー接続を待機します。

デバッグセッションを開始する

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

ゼロ設定のデバッグセッションを開始するには、これらの一般的な手順を実行します。

デバッグエンジンのインストールを検証する

  • 以下のいずれかを行います。

    • コマンドラインで、php --version コマンドを実行します。出力には、インストールされている拡張機能の中にデバッグエンジンが表示されます。

      Xdebug extension installed
      Zend debugger extension installed
    • phpinfo(); 関数呼び出しを含む php ファイルを作成します。次にこのファイルをブラウザーで開きます。 phpinfo の出力には、デバッグエンジンのセクションが含まれているはずです。

      Debugging engine installed
      Debugging engine installed

受信デバッグ接続のリッスンを有効にする

  • PhpStorm ツールバーの PHP のデバッグ接続を聞く開始ボタンstart listening php debug connectionsを切り替えて、stop listening php debug connectionsに変更します。その後、PhpStorm は、現在のプロジェクトで使用されているデバッグエンジンのポートのリッスンを開始します。デバッグポートは、設定 / 環境設定ダイアログ Ctrl+Alt+S 言語 & フレームワーク | PHP | デバッグページの PhpStorm レベルで設定されます。 Start listening to debugging connections

コードにブレークポイントを設定する

  • 次のいずれかを実行して、コードにブレークポイントを設定します。

    • ブレークポイントを切り替える行の左ガター領域をクリックします。

    • メインメニューで実行 | ブレークポイント行の切り替えを選択します。

    • Ctrl+F8 を押します。

    Set breakpoints

    または、PhpStorm との接続が確立されるとすぐにデバッガーを停止させるには、実行 | PHP スクリプトの最初の行で中断するを選択します(最初のブレークポイントに達するまで自動的に実行するのではなく)。

サーバー上でデバッガーを有効にする

  • ブラウザーからデバッグエンジンを起動および停止できるようにするには、特別な GET / POST または COOKIE パラメーターを設定する必要があります。 php.ini 構成ファイルで手動で行うか、使用可能なブラウザーデバッグ拡張機能の 1 つを使用できます。拡張機能が利用できないブラウザーを使用している場合は、デバッガーを起動 / デバッガーを停止ブックマークレットを生成して、ブラウザーのツールバーに追加できます。

    ブラウザーでデバッグ拡張機能を有効にします:

    Xdebug helper in Chrome

    手動でパラメーターを設定する方法の詳細については、Xdebugデバッガーの起動(英語)および Zend デバッガー Zend デバッガーの GET リクエストパラメーター(英語)を参照してください。

デバッグセッションを開始する

  1. ブラウザーでページを再ロードして、PhpStorm に戻ります。<デバッグエンジン> からの受信接続ダイアログで、PhpStorm が Web サーバー上のリモートファイルをプロジェクトのローカルファイルにマップできるように、パスマッピングを選択します。デプロイ構成を定義している場合、PhpStorm は、その構成で既に設定したパスに基づいてマッピングを構成することを提案します。

    Incoming debugger connection Xdebug
  2. ブレークポイントに達すると、デバッガーは中断されます。これでアプリケーションを調べることができます。

    Application stopped at breakpoint
  3. プログラムの実行を継続し、再び中断されるとすぐにそのフレームを調べます。

    • プログラムの実行を手動で制御するには、実行メニューまたはツールバーボタン:ステップイン F7 ステップアウト Shift+F8 ステップオーバー F8 などのコマンドを使用してコードをステップ実行します。詳細については、プログラムのステップスルーを参照してください。

    • プログラムを自動的に次のブレークポイントまで実行させるには、実行 | デバッグアクション | 再開を選択するか F9 を押してセッションを再開します。

リクエストをスキップするスクリプトを指定する

デバッグ中に PhpStorm が無視するスクリプト要求を指定することもできます。この方法は、アプリケーションに AJAX を使用するスクリプトが含まれている場合に便利です。あなたの Web ページの一部を " 再ロード " する menu-ajax-script.php があるとします。このスクリプトは正常に動作し、デバッグする必要はありません。ただし、このスクリプトは依然としてデバッグセッション中に要求されます。このスクリプトへの受信接続を無視するには、スキップされたパスのリストに menu-ajax-script.php スクリプトを追加します。

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | デバッグ | スキップするパスに移動します。

  2. 開いたスキップするパスページで、「無視リスト」を設定します。スクリプトおよび PhpStorm がそれらへの受信接続を受信した場合に呼び出されないスクリプトを含むフォルダーのセット。

    • リストに新しいエントリを追加するには、the Add buttonをクリックするか Alt+Insert を押します。次にthe Browse buttonをクリックして表示されるダイアログで、接続をスキップするファイルまたはフォルダーを選択します。

    • リストからエントリを削除するには、それを選択してthe Remove buttonをクリックするか Alt+Delete を押します。スクリプトはリクエストを受け取ると実行されます。

  3. スキップするスクリプトへのリクエストを受け取るたびに PhpStorm に通知するには、スキップされたパスについて通知するチェックボックスをオンにします。

関連ページ:

Xdebug を構成する

Xdebug をダウンロードPHP バージョンと互換性のあるXdebug 拡張をダウンロードし、インストールガイドの説明に従ってインストールします。Xdebug 3は、パフォーマンスの向上、構成の簡素化、PHP8 のサポートをもたらします。Xdebug 3 へのアップグレードの詳細については、アップ...

デバッグエンジンの構成を検証する

PhpStorm は、XdebugまたはZend デバッガーの構成を検証し、一部の設定が欠落しているか、他の設定と矛盾していないかを通知します。プロジェクトの PHP インタープリターを構成するとき、PhpStorm は、デバッガーがローカルの PHP 開発環境にインストールされているかどうかを通知...

デバッグ

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

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッ...

ブラウザーのデバッグ拡張機能

デバッグを開始するには、まずサーバー上でデバッガーエンジンをアクティブにする必要があります。これを行うには、特別なまたはパラメーターを設定する必要があります(詳細については、XdebugおよびZend デバッガーの公式ドキュメントを参照してください)。手動で行うこともできますが、ブラウザーの拡張機能...