XDebug and RESTful server using PHPStorm or POSTman
如何获得REST客户端(例如内置于PHPStorm或POSTman的REST客户端)以与XDebug一起使用?
在我当前的XDebug设置中,使用PHPStorm和Bookmarklet提供了能够在Chrome和Firefox上运行的功能-但是,一旦我尝试使用POSTman或任何其他REST客户端,我就无法弄清楚 开始。
干杯。
-
使用该"电话手柄"图标,以便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
-
我试图避免在每个请求上都启动XDEBUG-但是,在URL的末尾添加?XDEBUG_SESSION_START=PHPSTORM可以解决问题。 (一种比较混乱的解决方案,但可行的)
在实施http://youtrack.jetbrains.com/issue/WI-17031之前,您可以尝试以下方法之一:
配置xdebug(通过编辑php.ini)以尝试调试每个php脚本(xdebug.remote_autostart = 1)
将xdebug会话开始参数添加到实际URL(XDEBUG_SESSION_START={{KEY}}-http://xdebug.org/docs/remote),例如:?XDEBUG_SESSION_START=PHPSTORM
将xdebug cookie作为标头之一传递(例如,由书签或浏览器扩展设置的标头)
为此,请确保预先激活"电话手柄"图标(Run | Start Listen for PHP Debug Connection)。
-
谢谢您的回答。就像我上面说的,第二个为我工作,尽管我认为我对尝试实现第三个更感兴趣-我的唯一问题是我没有通过POSTman或PHPStorm设置cookie的任何乐趣。无论如何,现在都可以使用,所以谢谢:)
-
如果有人使用REST控制台chrome扩展,则在他们输入键时添加XDEBUG_SESSION_START,并在Request Payload(请求参数)下添加PHPSTORM作为值对我有用
-
这解决了我的问题,我不得不把f.q.d.n / rest / route?XDEBUG_SESSION_START = PHPSTORM,然后我还必须添加标题:Cookie:XDEBUG_SESSION = PHPSTORM。我目前正在调试静态服务,因此这很有用
-
第一个答案对我有用。我有兴趣知道,如果脚本运行时PhpStorm没有监听,它是否会导致dev框上的任何明显的减速。
-
@ M1ke xdebug尝试连接到调试客户端(对于每个请求/主脚本)时,大约会有1秒的延迟。
-
这是我长期以来遇到的最好的事情! #2为我工作。不再记录!!!
-
我正在Mac上使用VSC并执行所有列出的内容,但仍未获得所需的输出。我在使用VSC时将XDEBUG_SESSION和XDEBUG_SESSION_START设置为XDEBUG_ECLIPSE。请帮忙。
-
我必须登录以感谢您添加XDEBUG_SESSION_START的完美解决方案
这让我发疯。我刚刚更新到PHP 7.1,xdebug无法正常工作。我更新了xdebug.so文件(Linux),并且php --version指示xdebug确实已加载并正常工作。但是当我使用Postman时,调试器永远不会启动。
这是解决方案。如果您使用Apache作为服务器,则需要启用PHP 7.1 mod并重新启动Apache:sudo service apache2 restart
-
这为我解决了问题。我正在使用Valet,因此使用valet stop和valet start可以达到目的。
1
| xdebug.remote_timeout = 60000 |
为我工作。由于我的Mac非常慢,并且远程调试器在200毫秒后超时(默认值)
https://github.com/tacnoman/dephpugger
这个lib在终端中运行调试器(例如ipdb用于Python,Byebug用于Ruby)。
非常易于使用,并且有示例如何运行php cli脚本和网络服务器。