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

标签 rest xdebug phpstorm

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

在我当前的 XDebug 设置中,使用 PHPStorm 和 Bookmarklet provided我可以让它在 Chrome 和 Firefox 中工作 - 但一旦我尝试使用 POSTman 或任何其他 REST 客户端,我就不知道如何开始它。

干杯。

最佳答案

您可以使用以下方法之一:

  1. 配置您的 Xdebug(通过编辑 php.ini)以尝试调试每个 PHP 脚本。关键选项:

    • Xdebug v2:xdebug.remote_autostart = 1
    • Xdebug v3:xdebug.start_with_request = yes
  2. 将 Xdebug session 启动参数添加到实际 URL (XDEBUG_SESSION_START={{KEY}} -- https://xdebug.org/docs/step_debug#manual-init ),例如:?XDEBUG_SESSION_START=PHPSTORM

  3. 将 Xdebug cookie 作为请求的一部分传递(例如,由 bookmarkletbrowser extension 设置的 cookie)。

为此,请确保在 PhpStorm 中提前激活“电话 handle ”图标(运行 | 开始监听 PHP 调试连接)。

<小时/>

P.S.如果您使用 Postman , Insominia或类似(另一个 REST 客户端),那么 IMO 最好/最透明的方式是使用 Xdebug cookie。您很可能已经使用了单独的环境(例如“开发”、“测试”、“生产”),因此您只能在需要的地方使用这样的 cookie(当然取决于所使用的工具和版本)。

这样就不需要编辑 URL(即使您将其作为“条件参数”,在某些环境中存在而在另一个环境中不存在)或配置 Xdebug 来“调试所有请求”。

来 self 的 Postman 的此类 Xdebug cookie 的示例(根据需要进行编辑;此处为本地 some-domain.local.test 假域名设置):

XDEBUG_SESSION=value; Path=/; Domain=.some-domain.local.test; Expires=Tue, 19 Jan 2038 03:14:07 GMT;

由于主机 URL 应该是您的环境的一部分(例如端点 URL 将类似于 {{host}}/api/v1/welcome),因此此类 cookie 将被发送到开发人员仅限域名,不适用于生产域名。

关于rest - 使用 PHPStorm 或 POSTman 的 XDebug 和 RESTful 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139803/

相关文章:

javascript - REST路由多个文件 Node js

php - XDebug 未加载到 PHP(Vista、Apache 模块)中

debugging - 如何在 PHPStorm 中显示当前调试的行?

php - 无法在 Phpstorm 中为 composer 添加命令行工具支持

c# - 具有通用集合的 WCF REST 服务

java - 私有(private) blob 存储 url 的格式,用于 GET 文件。休息API

php - Xdebug:[Step Debug]无法连接到调试客户端

通过魔术方法访问的 PhpStorm 字段

对象数组数组的 PHPStorm 代码提示

java - 如何在 spring mvc Rest 服务中将请求 URI 的一部分获取到路径变量中