将 xdebug 与前端 js SPA 一起使用?

Using xdebug with a front-end js SPA?

当我直接访问我的服务器(通过 homestead/vagrant 设置的 IP 的虚拟主机条目)时,我的 xdebug 工作得很好。但是,我有一个分离的前端,我在 localhost:8080 上 运行,它与 laravel 后端服务器通信,但 xdebug 不会触发这些请求。我 认为 我只需要在来自前端的请求中设置 cookie XDEBUG_SESSION=PHPSTORM,但是我不确定如何使用 vue-resource 来做到这一点,因为我在文档中没有看到任何内容。我尝试了以下方法:

Vue.http.headers.common['Cookie'] = 'XDEBUG_SESSION=PHPSTORM'

然而,chrome 警告我 Refused to set unsafe header "Cookie"。有人知道我可以尝试的其他方法吗?

除了使用 COOKIE 或 GET/POST 参数之外的几种可能的方法。

  1. 在 php.ini 中使用 xdebug.remote_autostart = 1。此选项指示 Xdebug 尝试调试每个请求(不管 cookie 或 GET/POST 参数)。

    不要忘记重新启动您的 Web 服务器/PHP 以便它会读取您的新配置文件。

    缺点:将尝试调试 每个请求,即使不需要调试,因此您可能会在 Xdebug 尝试建立调试连接时看到大约 1 秒的延迟。

  2. 在实际的 PHP 代码中放置 xdebug_break();:一个编程断点,如果尚未建立调试会话,它将启动调试会话,并将在该行停止。

    缺点:需要为此编辑 PHP 代码。

详细说明@LazyOne 的答案我想补充一点,对于 xDebug v3+ 你应该使用

xdebug.start_with_request=yes

而不是

xdebug.remote_authostart=1