我经常发现将php错误转换为异常并注册set_error_handler
和register_shutdown_function
的回调非常有用,所以我决定尝试一些更可靠的解决方案,即Symfony Debug组件。然而,在introduction page中,他们警告:
您绝不能在生产环境中启用调试工具,因为它们可能向用户披露敏感信息。
启用调试组件基本上意味着调用Symfony\Component\Debug\Debug::enable()
,这反过来会注册错误处理程序和异常处理程序。这也让开发人员选择$displayErrors
,这意味着
是否显示错误(用于开发)或仅记录它们(用于生产)
因此,一个人可以简单地注册一些自定义日志记录器并在生产中安全使用调试器,不是吗?
我真的很想开始使用这个组件来安全地管理php中的错误情况,因为我开始重复造轮子,写了一些非常接近它的东西(当然除了质量 :D),但是那个建议不要在生产中使用它让我有点担心:你认为会出现什么问题呢?顺便说一下,显示错误意味着这样做:
$exceptionHandler = set_exception_handler('var_dump');
,所以在开发期间设置$displayErrors
开启应该完全没有问题,然后在生产环境中关闭它,保持所有错误都被错误处理程序捕获并记录下来的安全性。那么如果您确实在生产中使用此组件,您会如何使用它?