xdebug 错误消息中参数的自定义格式

custom formatting of parameters in xdebug error messages

我知道您可以使用 Xdebug 更改 xdebug.collect_params 设置,以便错误消息包含有关调用中使用的参数的更多信息。 (对此有很好的解释here

但是,我的对象的字符串表示非常大且不可读。

我已经有一些很好的 toString 实现,它们只是 returns 一个唯一的 id,所以如果我能让 xdebug 使用 __toString() 而不是完整的序列化,那就太好了。

这(或参数格式的任何其他自定义)可能吗?

我想理论上我可以尝试通过 __sleep() 实现自定义表示,但实际上我需要默认序列化机制来跨请求保存对象。

有一些工具可以提供直观和交互式的方式来显示异常和堆栈跟踪。因此,您可以获得所有必要的详细信息,并且仍然保持整洁 UI。考虑以下因素:

调试时,您通常需要尽可能多的(有用的)信息,因此与其删除(目前)不必要的信息,不如尝试使用 隐藏 的库默认情况下的信息,但确保它在您需要时就在那里。


* Symfony 异常处理程序似乎能够独立工作(从 composer.json 判断 Symfony 没有其他依赖项,尽管我还没有尝试过)。文档说:

The ExceptionHandler class catches uncaught PHP exceptions and converts them to a nice PHP response. It is useful in debug mode to replace the default PHP/XDebug output with something prettier and more useful.

正如上面评论中指出的:

PHP 5.6 支持 __debugInfo(). A patch 因为此方法已于 2014 年 12 月提交到 xdebug 仓库,应该很快就会发布。

另请参阅:How to get __debugInfo to work with XDebug?