我想完全禁用 Symfony 中的树枝错误页面。我不想像这里描述的那样自定义它们:http: //symfony.com/doc/2.0/cookbook/controller/error_pages.html而是简单地拔掉twig的异常处理机制并最终得到简单的旧php错误。
有可能吗?
我想完全禁用 Symfony 中的树枝错误页面。我不想像这里描述的那样自定义它们:http: //symfony.com/doc/2.0/cookbook/controller/error_pages.html而是简单地拔掉twig的异常处理机制并最终得到简单的旧php错误。
有可能吗?
要禁用树枝错误页面,您只需添加类似
services:
twig.exception_listener:
class: DateTime #or another dummy class
到你的 app/config.yml
在此之后,您将看到由 Symfony\Component\HttpKernel\Debug\ExceptionHandler 生成的许多简单屏幕。如果您想删除此行为 - 替换此类或仅注释 set_exception_handler 调用。
public static function register($debug = true)
{
$handler = new static($debug);
set_exception_handler(array($handler, 'handle'));
return $handler;
}
在 Symfony 3.x 中,可以这样做:
在services.yml中,添加监听器覆盖(如@Ziumin 的回答):
services:
twig.exception_listener:
class: stdObject
在app_dev.php中,注释掉该行Debug::enable();
,这将禁用甚至简化的错误处理页面(然后无需从框架修改文件)。
然后,您可以添加自己的异常处理程序:
// Disable error handling page:
// Debug::enable();
set_exception_handler(function($e) {
$msg = array();
$msg[] = 'Exception: ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine();
$msg[] = '';
$msg[] = $e->getTraceAsString();
echo implode("\n", $msg);
});