2

我想完全禁用 Symfony 中的树枝错误页面。我不想像这里描述的那样自定义它们:http: //symfony.com/doc/2.0/cookbook/controller/error_pages.html而是简单地拔掉twig的异常处理机制并最终得到简单的旧php错误。

有可能吗?

4

2 回答 2

10

要禁用树枝错误页面,您只需添加类似

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;
}
于 2012-11-29T19:13:37.330 回答
0

在 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);
});
于 2016-10-07T08:42:06.490 回答