gpt4 book ai didi

php - 为什么不在生产中启用 Symfony 调试工具?

转载 作者:行者123 更新时间:2023-12-04 17:44:15 24 4
gpt4 key购买 nike

我经常发现将 php 错误转换为将回调注册到 set_error_handler 的异常非常有用和 register_shutdown_function ,所以我决定尝试一些更可靠的解决方案,即 Symfony 调试组件。然而,在 introduction page他们警告:

You should never enable the debug tools in a production environment as they might disclose sensitive information to the user.

启用调试组件基本上意味着调用Symfony\Component\Debug\Debug::enable() ,这又是registers an error handler and an exception handler .这也让开发商选择$displayErrors , 这意味着

Whether to display errors (for development) or just log them (for production)

所以可以简单地 register some custom logger并在生产中安全地使用调试器,不是吗?

我真的很想开始使用这个组件来安全地管理 php 中的错误情况,只是因为我开始重新发明轮子,写一些非常接近它的东西(当然质量除外 :D),但是那个建议不在生产中使用它让我有点担心:您认为它会产生什么样的问题?

顺便说一下,显示错误的意思是: $exceptionHandler = set_exception_handler('var_dump'); , 所以设置 $displayErrors 应该是完全没问题的在开发期间打开,然后在生产中将其关闭,以确保错误处理程序将所有错误作为异常捕获并记录下来的安全性。

那么您如何在生产中使用该组件(如果您使用的话)?

最佳答案

我认为您不应该“[使用] 这个组件来安全地管理 php 中的错误情况”。基本上,您获得的这些异常根本不应该被捕获。它们应该立即修复,并在您修复之前阻止开发。在过去,您可能会在同一页面上收到数百条通知并忽略它们,因为您的错误报告级别对它们来说太低了。

您可以在代码中捕获的异常是所有其他异常,它们不是从 php 错误转换而来的。其他一切都需要修复,最好是在开发过程中。如果在生产中出现这样的错误,它一定不能减慢执行速度或显示调试信息,这就是我认为禁用它的原因。

关于php - 为什么不在生产中启用 Symfony 调试工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com