2013-10-02 52 views
56

如何獲取REST客戶端(如PHPStormPOSTman中內置的客戶端)與XDebug一起使用?使用PHPStorm或POSTman的XDebug和RESTful服務器

在我當前使用的XDebug中,使用PHPStorm和Bookmarklet provided,我可以在Chrome和Firefox中都能使用它 - 但是一旦我嘗試使用POSTman或任何其他REST客戶端,我無法弄清楚如何開始。

乾杯。

+1

使用該「手柄」圖標,IDE開始偵聽調試連接。然後,將xdebug(php.ini)配置爲調試**每個** php腳本('xdebug.remote_autostart = 1'),或者查看是否將xdebug會話啓動參數('XDEBUG_SESSION_START = {{name}}')添加到URL將有助於:http://xdebug.org/docs/remote。或者,您可以將xdebug cookie作爲標題之一傳遞(例如,由小書籤設置的標題)。除此之外:http://youtrack.jetbrains.com/issue/WI-17031 – LazyOne

+2

我試圖避免在每個請求上都有XDEBUG啓動 - 但是,在URL的末尾添加「?XDEBUG_SESSION_START = PHPSTORM」可以起到治療作用。 (稍微凌亂的解決方案,但有效) –

回答

124

直到http://youtrack.jetbrains.com/issue/WI-17031將實施則可以嘗試以下方法之一:

  1. 配置您的XDebug(編輯php.ini文件),以嘗試調試 PHP腳本(xdebug.remote_autostart = 1

  2. 將xdebug會話啓動參數添加到實際URL(XDEBUG_SESSION_START={{KEY}} - http://xdebug.org/docs/remote),例如:?XDEBUG_SESSION_START=PHPSTORM

  3. 通Xdebug的cookie作爲頭一個(由bookmarklet或瀏覽器擴展設置一個,例如)

對於這個工作 - 確保「電話手柄」圖標被激活(Run | Start Listen for PHP Debug Connection ) 提前。

+0

謝謝你的回答。正如我上面所說,第二個爲我工作,但我想我會更有興趣嘗試實現第三個 - 我唯一的問題是我沒有任何喜歡通過POSTman或PHPStorm設置cookie。無論如何,這現在的作品,所以謝謝:) –

+1

如果有人正在使用REST控制檯鉻擴展,添加XDEBUG_SESSION_START作爲他們的鑰匙和PHPSTORM作爲請求有效載荷(請求參數)下的值爲我工作 – JackalopeZero

+8

這解決了我的問題,我不得不把https:// fqdn/rest/route?XDEBUG_SESSION_START = PHPSTORM,我還必須添加到標頭:Cookie:XDEBUG_SESSION = PHPSTORM。我目前正在調試一個寧靜的服務,所以這是有幫助的 – krob

2

這讓我瘋狂。我只是更新到PHP 7.1和xdebug工作不再起作用。我更新了xdebug.so文件(Linux),php --version表示xdebug確實正在加載並正在工作。但是當我使用Postman時,調試器從未被踢過。

下面是解決方案。如果您正在使用Apache作爲你的服務器,那麼你需要啓用PHP 7.1 MODS並重新啓動Apache的:sudo service apache2 restart

+0

這解決了我的問題。我正在使用代客,所以做'代客停車'和'代客啓動'這個伎倆。 – leonardfactory

-3

https://github.com/tacnoman/dephpugger 這LIB運行在終端的調試器(如IPDB Python和Byebug爲Ruby)。 是非常容易使用,並有示例如何運行php cli腳本和web服務器。

+0

需要更多信息。 –