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

时间:2013-10-02 14:46:15

标签: rest xdebug phpstorm

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

在我目前的XDebug设置中,使用PHPStorm和Bookmarklet provided我能够在Chrome和Firefox中使用它 - 但是当我尝试使用POSTman或任何其他REST客户端时,我无法弄清楚如何开始。

干杯。

6 个答案:

答案 0 :(得分:165)

在实施http://youtrack.jetbrains.com/issue/WI-17031之前,您可以尝试以下方法之一:

  1. 配置xdebug(通过编辑php.ini)尝试调试每个 php脚本(xdebug.remote_autostart = 1

  2. 将xdebug会话启动参数添加到实际网址(XDEBUG_SESSION_START={{KEY}} - http://xdebug.org/docs/remote),例如:?XDEBUG_SESSION_START=PHPSTORM

  3. 将xdebug cookie作为标题之一(例如bookmarklet或浏览器扩展名设置)

  4. 要使其正常工作 - 请确保提前激活(Run | Start Listen for PHP Debug Connection)“手机处理”图标。

答案 1 :(得分:3)

只需在网址末尾添加 ?XDEBUG_SESSION_START=filter_string,例如:

https://new-supplier.local/api/login?XDEBUG_SESSION_START=PHPSTORM

PHPSTORM 是我的默认过滤字符串,你可以使用任何你想要的。您的编辑器应该设置为按 IDE 键(过滤字符串)过滤连接,仅此而已。您应该能够以与 Chrome 或 FF 相同的方式进行调试。

答案 2 :(得分:2)

这让我发疯了。我刚刚更新到PHP 7.1和xdebug工作不再有效。我更新了xdebug.so文件(Linux)和php --version,表明xdebug确实正在加载并正常工作。但是当我使用Postman时,调试器从未启动过。

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

答案 3 :(得分:1)

xdebug.remote_timeout = 60000

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

答案 4 :(得分: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

答案 5 :(得分:-3)

https://github.com/tacnoman/dephpugger 这个lib在终端运行调试器(比如Python的ipdb和Ruby的Byebug)。 非常容易使用,并且有一些示例如何运行php cli脚本和webserver。