To pytanie jest związane z following change (część Symfony 2.2 wydaniu):Symfony 2.2 przedłużyć ExceptionController
część 1
w pre-2.2 Symfony, byłem nadrzędnymi ExceptionController
wyświetlanie niektórych stron błędów niestandardowych .
Zrobiłem to poprzez:
parameters:
twig.exception_listener.controller: My\CustomBundle\CustomExceptionController::showAction
Teraz, po aktualizacji do 2.2, już nie mogę tego zrobić, ponieważ jest wyjątek podczas generowania wyjątek (gra słów nie przeznaczonych):
ExceptionController :: __ construct() musi być instancją Twig_Environment, żaden danej nazwie, w ...
od ExceptionController
jest usługą teraz, jak mogę to zmienić i co muszę zmienić w starym kodzie?
Wszystko zrobiłem w klasie niestandardowej ulega zmianie odniesienie szablonu w metodzie showAction:
$template = new TemplateReference('TwigBundle', 'Exception', $name, $format, 'twig');
Part 2
Od ExceptionController
nie rozciąga ContainerAware
, jak mogę dostać się do prądu pojemnik? Czy wystarczy wdrożyć ContainerAwareInterface
?
Dzięki Wouter! To czego mi brakowało to nadpisanie twig.controller.exception.class. Teraz działa jak urok. – isyndicate
Właściwie w drugiej części mojego pytania, w poprzedniej implementacji ExceptionController, udało mi się pobrać parametr z $ this-> container-> getParameter(). Jak mogę pobrać ten sam parametr w nowym niestandardowym kontrolerze wyjątków, skoro jest to usługa? Czy użycie $ this-> twig-> getGlobals() byłoby właściwą drogą? – isyndicate
Ten poradnik okazał się również przydatny: https://knpuniversity.com/screencast/symfony2-ep3/error-pages – shakaran