Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php xdebug错误消息中参数的自定义格式_Php_Debugging_Serialization_Formatting_Xdebug - Fatal编程技术网

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

Php xdebug错误消息中参数的自定义格式,php,debugging,serialization,formatting,xdebug,Php,Debugging,Serialization,Formatting,Xdebug,我知道使用Xdebug可以更改Xdebug.collect_params设置,以便错误消息包含有关调用中使用的参数的更多信息。(有一个很好的解释) 但是,我的对象的字符串表示非常大,无法读取 我已经有了一些很好的toString实现,它们只返回一个唯一的id,因此如果我能让xdebug使用\uu toString()而不是完全序列化,那将是非常好的 这是否可能(或参数格式的任何其他自定义) 理论上,我想我可以尝试通过\uu sleep()实现自定义表示,但实际上我需要默认的序列化机制来跨请求保

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

但是,我的对象的字符串表示非常大,无法读取

我已经有了一些很好的toString实现,它们只返回一个唯一的id,因此如果我能让xdebug使用
\uu toString()
而不是完全序列化,那将是非常好的

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


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

有一些工具提供了一种直观的交互方式来显示异常和堆栈跟踪。因此,您可以拥有所有必要的细节,并且仍然拥有一个整洁的UI。考虑以下事项:

  • ()
  • ()
  • *
调试时,您通常希望获得尽可能多的(有用的)信息,因此,不要删除(目前)不必要的信息,而是尝试使用默认情况下隐藏信息的库,但确保它在需要时存在


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

ExceptionHandler类捕获未捕获的PHP异常,并将其转换为良好的PHP响应。在调试模式下,用更漂亮、更有用的东西替换默认的PHP/XDebug输出非常有用


正如上述评论所指出的:

PHP5.6支持。2014年12月,已向xdebug回购协议提交了该方法的详细说明,并应尽快发布


另请参见:

尽管我的IDE依赖Xdebug进行调试工作,但这看起来非常不错。不确定将它们一起使用是否明智?哦,在演示中,我没有看到任何关于所用参数值的信息?诚然,我以前没有使用过“呜呜”声,而且它似乎无法跟踪传递的参数。但是,我一直在项目中使用NetteDebug和Symfony\Debug,它们都支持显示传递的参数。我已经用新的链接更新了帖子。谢谢,这是一个很好的列表。也许有一天它会派上用场,但现在我真的在寻找使用xdebug的解决方案。似乎uuu debugInfo是我碰巧遇到的答案,这个项目有一组很好的包,包括一个名为的错误处理程序。这是一个相当年轻的项目,不包含一个项目,但是该项目为定制错误输出提供了坚实的OOP基础。我没有将它添加到列表中,因为它还没有提供“显示异常的直观和交互式方式”。我真的不知道,但是如果xdebug使用
var\u dump()
,那么您可以将
\uu toString()
逻辑移动到
\uu debugInfo()
。是的,这似乎正是解决方案。xdebug的最新版本中实现了对_debugInfo的支持。现在我只需要等待使用PHP5.6;的WAMP更新)相关的: