1. ホーム
  2. rest

[解決済み] XDebugとPHPStormまたはPOSTmanを使ったRESTfulなサーバ

2023-03-22 15:39:46

質問

どうすれば REST クライアント (たとえば PHPStorm または POSTman ) を XDebug で動作させることはできますか?

私の現在のXDebugのセットアップでは、PHPStormと ブックマークレットが提供する しかし、POSTmanや他のRESTクライアントで試すとすぐに、それを開始する方法を理解することができません。

ありがとうございました。

どのように解決するのですか?

次のいずれかの方法を使用できます。

  1. (php.ini を編集して) Xdebug を設定し、デバッグを試みる。 すべての php スクリプトのデバッグを試みるように設定します。重要なオプションです。

    • Xdebug v2: xdebug.remote_autostart = 1
    • Xdebug v3: xdebug.start_with_request = yes
  2. 実際のURLにXdebugセッション開始パラメータを追加する( XDEBUG_SESSION_START={{KEY}} -- http://xdebug.org/docs/remote ) のように、例えば ?XDEBUG_SESSION_START=PHPSTORM

  3. Xdebug cookie をヘッダの一つとして渡す (このヘッダは ブックマークレット やブラウザの拡張機能によって設定されるもの)。

動作させるために: PhpStormであらかじめ"電話ハンドル"アイコンが有効になっていることを確認します( Run | Start Listen for PHP Debug Connection ).


P.S. もし、あなたが ポストマン , インソミニア または同様のもの(別の REST クライアント)であれば、IMO の最も良い/透明な方法は Xdebug クッキーを使用することです。 . あなたはおそらくすでに別々の環境(例えば、"dev", "test", "production" )を使用しているので、必要な場所にだけそのようなクッキーを持つことができます(もちろん、使用するツールとバージョンに依存します)。

この方法では、URL を編集したり (ある環境では存在し、別の環境では存在しないといった "conditional parameter" として持っていても)、Xdebug を設定して "debug all requests" する必要はまったくありません。

私の Postman にある Xdebug クッキーの例 (必要に応じて編集してください; ここではローカルの some-domain.local.test 偽ドメインに設定されています)。

XDEBUG_SESSION=value; Path=/; Domain=.some-domain.local.test; Expires=Tue, 19 Jan 2038 03:14:07 GMT;

ホスト URL は Environment の一部であるべきなので (例えば、エンドポイント URL は次のようになります。 {{host}}/api/v1/welcome のようになります)、そのようなクッキーは開発ドメインにのみ送信され、本番ドメインには送信されません。