Этот вопрос связан с following change (часть Symfony 2.2 выпуска):Symfony 2,2 простираться ExceptionController
Часть 1
В пре-2,2 Symfony, я переопределение ExceptionController
для отображения некоторых страниц ошибок ,
я не что с помощью:
parameters:
twig.exception_listener.controller: My\CustomBundle\CustomExceptionController::showAction
Теперь, после обновления до версии 2.2, я больше не могу сделать это, так как исключение при генерации исключения (не каламбур):
ExceptionController :: __ конструкт() должен быть экземпляром Twig_Environment, ни данной, называемой в ...
Поскольку ExceptionController
услуга теперь, как я могу переопределить это, и что мне нужно изменить в моем старом коде?
Все, что я сделал в пользовательском классе, изменяется ссылку шаблона в методе showAction:
$template = new TemplateReference('TwigBundle', 'Exception', $name, $format, 'twig');
Часть 2
Поскольку ExceptionController
больше не распространяется ContainerAware
, как добраться до тока контейнер? Достаточно ли реализовать ContainerAwareInterface
?
Thanks Wouter! То, что мне не хватало, это переопределение twig.controller.exception.class. Сейчас работает как шарм. – isyndicate
На самом деле для второй части моего вопроса, в предыдущей реализации ExceptionController, мне удалось получить параметр из $ this-> container-> getParameter(). Как я могу получить тот же самый параметр в новом настраиваемом контроллере исключений, теперь, когда это сервис? Использует ли $ this-> twig-> getGlobals() правильный путь? – isyndicate
Я тоже нашел этот урок: https://knpuniversity.com/screencast/symfony2-ep3/error-pages – shakaran