我已经安装了Symfony 2.7.41并在app.php中启用了生产模式
$kernel = new AppKernel('prod', false);
当我在控制器中通过制作一个错误进行测试时
public function indexAction(Request $request)
{
echo "dsgds";
$var=dd;
exit();
}
但即使在生产中显示erorr而不是500内部服务器错误
dsgds注意:使用未定义的常量dd - 假定为'dd' d:\ XAMPP \ htdocs中\ weebly \开发二的\ src \的appbundle \控制器\ DefaultController.php 第17行
已经阅读以下内容 Dev Exceptions are shown in production environment
Moving app to production mode in Symfony 2
答案 0 :(得分:0)
dd
是未定义的变量。
如果你想将$var
的值设置为字符串'dd'
,那么它就可以了,但是你不要放任何''
。所以它表现出一个你以前没有定义过的常量变量。
谢谢
答案 1 :(得分:0)
正如之前所说,dd应该在'(作为字符串)以避免错误,但据我所知,这不是你所要求的。
您想要隐藏例外....
你可能不喜欢anwser,但你甚至都没有尝试过。 老实说(这是一个坏主意)我不知道它是否可能,但你应该从symfony事件系统开始。
也许尝试捕获kernel.exception事件并停止事件传播。
如何做的一些提示应该在这里:
https://symfony.com/doc/2.7/controller/error_pages.html https://symfony.com/doc/2.7/event_dispatcher.html
但这是一个非常糟糕的主意 - 你作为一个创建代码的人应该尝试无错误地执行代码,而不是隐藏它(这就是为什么存在test和phpunit)。 恕我直言,symfony最好的事情是这个框架迫使你学习OOP和错误/异常处理
PS。第二个坏主意:也许将所有操作代码放入try .. catch?
答案 2 :(得分:0)
它可能是转储,但是,正如它在生产模式下发生的那样,是否要清理缓存? (甚至删除它以确定)。