xdebug.start_start_with_request = YES没有错误,如果调试客户端不听

问题描述

我曾经有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注释看起来脏脏的黑客攻击,我可能的缺点,而不是一个有效的解决方案。

我怎样才能保持预期的行为,而这条消息?

解决方法

感谢您分享您对这位 Derick 的看法。

设置 xdebug.log_level=0 意味着您隐藏所有警告和错误,这使得无法调试任何内容。不要那样做。

我根本不想这样做,但目前我没有看到另一种方法来保持我在问题描述中解释的旧行为。

以前,很多人在让 Xdebug 工作时遇到问题,而这个警告对他们指出出现问题非常有用。

我完全理解这种新行为背后的动机,而且我也认为它可能对许多人有用。但是,无法抑制此警告的事实可能会给知道自己在做什么的人带来麻烦。

嗯,“他们在做什么”可能是一个不恰当的短语,他们想要的可能更好......

我们公司有一个工作流,使用 xDebug 2,不需要任何额外的浏览器扩展或环境变量(见上文),只需要在 IDE 和魔法中启用监听 xDebug 连接......这是一个记录的解决方案和我们基于 Docker 的开发人员堆栈确保 xDebug 为每个开发人员工作 OOTB。 (同样,没有任何额外的依赖)

您是否建议 xDebug 3 不再支持此工作流程?

是否有机会向 xDebug 3 添加新配置,以便仅抑制这些新警告并启用“专家模式”?

,

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 意味着您隐藏所有警告和错误,从而无法调试任何内容。不要那样做。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...