如何让 REST 客户端(例如 PHPStorm 或 POSTman 中内置的客户端)与 XDebug 一起使用?
在我当前的 XDebug 设置中,使用 PHPStorm 和 Bookmarklet provided我可以让它在 Chrome 和 Firefox 中工作 - 但一旦我尝试使用 POSTman 或任何其他 REST 客户端,我就不知道如何开始它。
干杯。
最佳答案
您可以使用以下方法之一:
配置您的 Xdebug(通过编辑 php.ini)以尝试调试每个 PHP 脚本。关键选项:
- Xdebug v2:
xdebug.remote_autostart = 1
- Xdebug v3:
xdebug.start_with_request = yes
- Xdebug v2:
将 Xdebug session 启动参数添加到实际 URL (
XDEBUG_SESSION_START={{KEY}}
-- https://xdebug.org/docs/step_debug#manual-init ),例如:?XDEBUG_SESSION_START=PHPSTORM
将 Xdebug cookie 作为请求的一部分传递(例如,由 bookmarklet 或 browser 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/