mxr*_*576 9 phpunit xdebug xdebug-3
我曾经对 Xdebug 2 有以下配置:
xdebug.default_enable=1
当没有调试客户端正在侦听时,Xdebug 不会减慢执行速度,但是当我需要调试某些内容时,我只需在 PhpStorm 中启用侦听并刷新页面即可。为此不需要浏览器扩展。这同样适用于调试 CLI 应用程序,它确实有效。
我尝试使用 Xdebug 3 实现相同的效果,配置如下:
xdebug.mode=debug
xdebug.start_start_with_request=yes
Run Code Online (Sandbox Code Playgroud)
它的工作原理相同,但每次当我在 PhpStorm 中禁用调试侦听并运行 CLI 命令时,我都会收到以下错误严重程度的消息:
Xdebug: [Step Debug] Could not connect to debugging client. Tried: 172.17.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(
Run Code Online (Sandbox Code Playgroud)
这是我可以忍受的,但它也会使 PHPUnit 测试失败beStrictAboutOutputDuringTests="true"。
如果我使用过,升级指南建议使用,但这不是有效的替代品。xdebug.module=developxdebug.default_enable=1
完全沉默所有 Xdebug 日志,甚至禁用此评论建议的 PHP 中的错误报告对我来说似乎是一种肮脏的黑客行为,可能存在缺陷,而不是有效的解决方案。
如果没有此消息,我如何才能保持预期的行为?
Der*_*ick 13
Xdebug 3 现在会在收到指示(通过xdebug.start_with_request=1或使用 COOKIE 或 GET 参数)并且无法连接到您的 IDE 时发出警告。以前很多人在让 Xdebug 工作时遇到问题,这个警告对于他们指出出现问题非常有用。
不显示错误消息的正确方法是根本不指示 Xdebug 连接到您的 IDE。
我建议xdebug.start_with_request=trigger先使用浏览器扩展作为触发器(https://xdebug.org/docs/step_debug#browser-extensionsexport XDEBUG_SESSION=yourname ),或者通过在命令行上导出。
设置xdebug.log_level=0意味着您隐藏所有警告和错误,这使得无法调试任何内容。不要那样做。
感谢您分享您对德里克的想法。
设置 xdebug.log_level=0 意味着隐藏所有警告和错误,这使得无法调试任何内容。不要那样做。
我根本不想这样做,但目前我没有看到另一种方法来保留旧行为,正如我在问题描述中所解释的那样。
以前很多人在让 Xdebug 工作时遇到问题,这个警告对于他们指出出现问题非常有用。
我完全理解这种新行为背后的动机,而且我也认为它可能对很多人有用。尽管如此,这个警告无法被抑制的事实可能会给那些知道自己在做什么的人带来问题。
好吧,“他们正在做什么”可能是一个不恰当的短语,他们想要的可能更好......
我们公司有一个使用 xDebug 2 的工作流程,不需要任何额外的浏览器扩展或环境变量(见上文),只需在 IDE 和魔法中启用侦听 xDebug 连接...这是一个记录在案的解决方案,并且我们基于 Docker 的开发人员堆栈确保 xDebug 对每个开发人员来说都能正常工作。(同样,没有任何额外的依赖)
您是否建议 xDebug 3 中不再支持此工作流程?
是否有机会向 xDebug 3 添加新配置,仅允许抑制这些新警告并启用“专家模式”?
| 归档时间: |
|
| 查看次数: |
9819 次 |
| 最近记录: |