我知道使用 Xdebug,您可以更改 xdebug.collect_params
设置,以便错误消息包含有关调用中使用的参数的更多信息。 (对此有一个很好的解释 here )
但是,我的对象的字符串表示非常大且不可读。
我已经有了一些很好的 toString 实现,它们只返回一个唯一的 id,所以如果我能让 xdebug 使用 __toString()
而不是完整的序列化,那就太好了。
这(或参数格式的任何其他自定义)可能吗?
我想理论上我可以尝试通过 __sleep() 实现自定义表示,但实际上我需要默认的序列化机制来跨请求保存对象。
最佳答案
有些工具可以提供直观且交互式的方式来显示异常和堆栈跟踪。因此,您可以获得所有必要的详细信息,并且仍然拥有整洁的用户界面。考虑以下因素:
- Whoops (Demo)
- NetteDebug (Demo)
- Symfony\Debug *
调试时,您通常需要尽可能多的(有用)信息,因此不要删除(目前)不必要的信息,而是尝试使用默认情况下隐藏信息的库,但确保在您需要时它就在那里。
* 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 - xdebug 错误消息中参数的自定义格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28634068/