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

Dan*_*nds 70 rest xdebug phpstorm

如何使用REST客户端(例如PHPStormPOSTman内置的客户端)与XDebug一起使用?

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

干杯.

Laz*_*One 172

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

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

  2. 将xdebug session start参数添加到实际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提前激活(电话手柄)图标().

  • 这解决了我的问题,我不得不把https:// fqdn/rest/route?XDEBUG_SESSION_START = PHPSTORM,然后我还要添加到标题:Cookie:XDEBUG_SESSION = PHPSTORM.我正在调试一个宁静的服务,所以这是有帮助的 (12认同)
  • 谢谢您的回答。正如我上面所说,第二个对我有用,尽管我认为我对尝试实现第三个更感兴趣 - 我唯一的问题是我没有通过 POSTman 或 PHPStorm 设置 cookie 的任何乐趣。无论如何,这现在有效,所以谢谢你:) (2认同)
  • 如果有人使用REST控制台chrome扩展,则添加XDEBUG_SESSION_START作为他们的键,并添加PHPSTORM作为Request Payload(请求参数)下的值对我有用 (2认同)

小智 25

?XDEBUG_SESSION_START=filter_string只需在 url 末尾添加即可,例如:

https://new-supplier.local/api/login?XDEBUG_SESSION_START=PHPSTORM
Run Code Online (Sandbox Code Playgroud)

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


小智 9

有一种更动态的方法可以做到这一点:

  1. variable在您的Postman集合中定义 a
  2. 在该集合中实现预请求脚本

步骤1: 步骤1

第2步: 在此输入图像描述

这是预请求脚本:

if (pm.collectionVariables.get("IS_XDEBUG_ACTIVE") == "1") {
    pm.request.headers.add({
        key: "Cookie",
        value: "XDEBUG_SESSION"
    });
}
Run Code Online (Sandbox Code Playgroud)