这个问题与以下更改有关(Symfony 2.2 版本的一部分):
第1部分
在 2.2 之前的 Symfony 中,我重写ExceptionController
以显示一些自定义错误页面。
我是通过以下方式做到的:
parameters:
twig.exception_listener.controller: My\CustomBundle\CustomExceptionController::showAction
现在,升级到 2.2 后,我不能再这样做了,因为在生成异常时会抛出异常(不是双关语):
ExceptionController::__construct() 必须是 Twig_Environment 的一个实例,没有给出,在...中调用
由于ExceptionController
现在是一项服务,我该如何覆盖它,以及我需要在旧代码中进行哪些更改?
我在自定义类中所做的只是更改了 showAction 方法中的模板引用:
$template = new TemplateReference('TwigBundle', 'Exception', $name, $format, 'twig');
第2部分
由于ExceptionController
不再 extends ContainerAware
,我如何到达当前容器?实施就够了ContainerAwareInterface
吗?