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

我经常发现将php错误转换为将回调注册到set_error_handlerregister_shutdown_function的异常非常有用,因此我决定尝试一些更可靠的解决方案,即Symfony Debug组件。但是,它们在introduction page中警告:

您永远不要在生产环境中启用调试工具,因为它们可能会向用户泄露敏感信息。

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

是显示错误(用于开发)还是仅记录错误(用于生产)

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

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

顺便说一句,显示错误的含义是:$exceptionHandler = set_exception_handler('var_dump');,因此在开发过程中将$displayErrors设置为打开,然后在生产中将其关闭是完全可以的,这样可以确保让错误处理程序捕获所有错误作为异常和记录下来。

那么,如何在生产中使用此组件(如果您要这样做的话)?

参考方案

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

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

Symfony 2在用户站点上动态添加字段以形成表单 - php

我正在研究调查包。目的是为用户提供一个功能全面的调查系统。我已经准备好一个后端,使您可以创建调查,添加问题(打开文本,单选按钮,复选框),是否需要提问,激活调查,生成令牌以及通过电子邮件将令牌发送到调查的链接。当然,我也有显示调查并保存答案的前端。现在,我想添加另一种可能性。带有答案(单选或复选框)和评论的问题。例如:你有一只狗吗?是没有如果用户选择是,则附…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

更改默认的URL PHP - php

如何更改默认网址。例如www.example.com/index.php-> www.example.com现在,我要将其设置为www.example.com/test.php。我应该在php.ini中进行更改吗? 参考方案 假设您正在使用apache,则可以通过DirectoryIndex指令执行此操作。Check out the docs。