Questa domanda è legata al following change (parte di Symfony 2.2 release):Symfony 2.2 estendere ExceptionController
Parte 1
In pre-2.2 Symfony, ero imperativi ExceptionController
per visualizzare alcune pagine di errore personalizzate .
ho fatto attraverso:
parameters:
twig.exception_listener.controller: My\CustomBundle\CustomExceptionController::showAction
Ora, dopo l'aggiornamento a 2.2, non posso più farlo, perché viene generata un'eccezione durante la generazione di un'eccezione (no pun intended):
ExceptionController :: __ construct() deve essere un'istanza di Twig_Environment, nessuno dato, chiamato in ...
Dal ExceptionController
è un servizio di ora, come posso sovrascriverlo e cosa devo cambiare nel mio vecchio codice?
Tutto quello che ho fatto in classe personalizzata, è cambiato il riferimento del modello di metodo showAction:
$template = new TemplateReference('TwigBundle', 'Exception', $name, $format, 'twig');
Parte 2
Dal ExceptionController
non si estende ContainerAware
, come ottengo alla corrente contenitore? È sufficiente implementare ContainerAwareInterface
?
Grazie Wouter! Quello che mi mancava è l'override di twig.controller.exception.class. Funziona come un fascino ora. – isyndicate
In realtà per la seconda parte della mia domanda, nella precedente implementazione di ExceptionController, sono riuscito a recuperare i parametri da $ this-> container-> getParameter(). Come posso recuperare lo stesso parametro nel nuovo controller eccezioni personalizzato, ora che si tratta di un servizio? Usare $ this-> twig-> getGlobals() sarebbe la strada giusta da percorrere? – isyndicate
Ho trovato utile anche questo tutorial: https://knpuniversity.com/screencast/symfony2-ep3/error-pages – shakaran