我曾经有Xdebug的2以下配置:
xdebug.default_enable=1
Xdebug的丝毫没有减慢时没有调试客户端在听执行,但是当我需要调试的东西,然后我才不得不启用PhpStorm聆听并刷新页面。 需要对此没有浏览器扩展。的应用进行调试CLI应用程序一样,它只是工作。
我试图用以下配置来实现与Xdebug的3相同的:
xdebug.mode=debug
xdebug.start_start_with_request=yes
它的工作原理相同,但每一次,当我关闭调试收听PhpStorm和运行CLI命令我得到以下消息的错误的严重性:
Xdebug: [Step Debug] Could not connect to debugging client. Tried: 172.17.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(
这是什么,我都能接受,但它也使得PHPUnit测试失败beStrictAboutOutputDuringTests="true"
启用。
在升级guide建议使用xdebug.module=develop
如果我用xdebug.default_enable=1
但这并不是一个有效的替代品。
完全沉默ALL Xdebug的日志,甚至禁用错误报告在PHP中建议的this注释看起来脏脏的黑客攻击,我可能的缺点,而不是一个有效的解决方案。
我怎样才能保持预期的行为,而这条消息?
答案 0 :(得分:4)
感谢您分享您对这位 Derick 的看法。
<块引用>设置 xdebug.log_level=0 意味着您隐藏所有警告和错误,这使得无法调试任何内容。不要那样做。
我根本不想这样做,但目前我没有看到另一种方法来保持我在问题描述中解释的旧行为。
<块引用>以前,很多人在让 Xdebug 工作时遇到问题,而这个警告对他们指出出现问题非常有用。
我完全理解这种新行为背后的动机,而且我也认为它可能对许多人有用。但是,无法抑制此警告的事实可能会给知道自己在做什么的人带来麻烦。
嗯,“他们在做什么”可能是一个不恰当的短语,他们想要的可能更好......
我们公司有一个工作流,使用 xDebug 2,不需要任何额外的浏览器扩展或环境变量(见上文),只需要在 IDE 和魔法中启用监听 xDebug 连接......这是一个记录的解决方案和我们基于 Docker 的开发人员堆栈确保 xDebug 为每个开发人员工作 OOTB。 (同样,没有任何额外的依赖)
您是否建议 xDebug 3 不再支持此工作流程?
是否有机会向 xDebug 3 添加新配置,以便仅抑制这些新警告并启用“专家模式”?
答案 1 :(得分:2)
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-extensions),或者通过在命令行上导出 export XDEBUG_SESSION=yourname
。
设置 xdebug.log_level=0
意味着您隐藏所有警告和错误,从而无法调试任何内容。不要那样做。