php – Symfony 2.2扩展ExceptionController
这个问题与
following change(Symfony 2.2版本的一部分)有关:
第1部分 在2.2之前的Symfony中,我重写了ExceptionController以显示一些自定义错误页面. 我这样做是通过: parameters: twig.exception_listener.controller: MyCustomBundleCustomExceptionController::showAction 现在,在升级到2.2后,我再也不能这样做,因为在生成异常时抛出异常(没有双关语):
由于ExceptionController现在是一个服务,我如何覆盖它,以及我需要在旧代码中更改什么? 我在自定义类中所做的全部更改了showAction方法中的模板引用: $template = new TemplateReference('TwigBundle','Exception',$name,$format,'twig'); 第2部分 由于ExceptionController不再扩展ContainerAware,我如何到达当前容器?是否足以实现ContainerAwareInterface?
你应该改变这几个:
>您需要在自定义Exception控制器中继承ExceptionController. parameters: twig.controller.exception.class: MyCustomBundleCustomExceptionController >您需要编辑showAction的签名以遵循new signature
不,服务不应该永远不会注入容器.您应该在构造函数中注入所需的服务,就像使用Twig_Environment服务一样. 在您的Exception控制器中,您可以访问twig服务的$this-> twig属性.并且新签名获取$request参数,以获取请求.我认为你不需要更多. (你也得到$this-> debug) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |