使用PHPStorm或POSTman的XDebug和RESTful服务器


75

如何获得REST客户端(例如内置于PHPStormPOSTman的REST客户端)以使用XDebug?

在我当前的XDebug设置中,使用PHPStorm和Bookmarklet提供了能够在Chrome和Firefox上运行的功能-但是,一旦我尝试使用POSTman或任何其他REST客户端,我就不知道该怎么做。开始。

干杯。


1
使用该“电话手柄”图标,以便IDE开始侦听调试连接。然后配置xdebug(php.ini)来调试每个php脚本(xdebug.remote_autostart = 1),或者查看是否将xdebug会话开始参数(XDEBUG_SESSION_START={{name}})添加到URL是否有帮助:xdebug.org/docs/remote。或..您可以将xdebug cookie作为标头之一(例如,由bookmarklet设置的标头)传递。除此之外:youtrack.jetbrains.com/issue/WI-17031
LazyOne 2013年

2
我试图避免在每个请求上都启动XDEBUG-但是,将其添加?XDEBUG_SESSION_START=PHPSTORM到URL的末尾是一种享受。(一种稍微混乱的解决方案,但
可行的

Answers:


188

在实施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作为标头之一传递(例如,由书签或浏览器扩展设置的标头)

为此,请确保Run | Start Listen for PHP Debug Connection预先激活“电话手柄”图标()。


2
谢谢您的回答。就像我上面说的,第二个为我工作,尽管我认为我对尝试实现第三个更感兴趣-我的唯一问题是我没有通过POSTman或PHPStorm设置cookie的任何乐趣。无论如何,现在都可以,所以谢谢:)
Daniel Hollands

2
如果有人使用REST控制台chrome扩展,则在他们输入键时添加XDEBUG_SESSION_START并将PHPSTORM作为请求有效负载(请求参数)下的值对我
有用

15
这解决了我的问题,我不得不把fqdn / rest / route?XDEBUG_SESSION_START = PHPSTORM放进去,然后还要添加到标头中:Cookie:XDEBUG_SESSION = PHPSTORM。我目前正在调试
静态

第一个答案对我有用。我很想知道,如果脚本运行时PhpStorm没有监听,它是否会在dev框上引起任何明显的速度下降。
M1ke 2015年

1
@ M1ke xdebug尝试连接到调试客户端(对于每个请求/主脚本)时,大约会有1秒的延迟。
LazyOne 2015年

2

这让我发疯。我刚刚更新到PHP 7.1,无法正常工作的xdebug。我更新了xdebug.so文件(Linux),并php --version指出xdebug确实已在加载和运行。但是,当我使用Postman时,调试器永远不会启动。

这是解决方案。如果您使用Apache作为服务器,则需要启用PHP 7.1 mod并重新启动Apache:sudo service apache2 restart


这为我解决了问题。我使用的代客,这样做valet stopvalet start没有的伎俩。
leonardfactory

1
xdebug.remote_timeout = 60000

为我工作。由于我的Mac很慢,并且远程调试器在200毫秒后超时(默认值)


0

警告

xdebug> = 3.0已更改php.ini中的参数。升级xdebug之后,此处的大多数答案将不相关。

请参阅:https//xdebug.org/docs/upgrade_guide

基本上,您需要在php.ini中添加以下内容:

xdebug.mode=develop,gcstats,coverage,profile,debug
xdebug.start_with_request=1
xdebug.idekey=PHPSTORM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.