Bonjour
Pour mon application je souhaite gérer les error page.
J'ai donc fait plusieurs choses:
modifier mon config.yml:
ajouter mon service:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # Twig Configuration twig: debug: "%kernel.debug%" strict_variables: "%kernel.debug%" globals: environnement: prod exception_controller: simsu.controller.exception:showAction
créé mon controller:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 simsu.controller.exception: class: Simsu\GeneralBundle\Controller\SimsuExceptionController arguments: [@twig, %kernel.debug%]
créer ma vue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <?php namespace Simsu\GeneralBundle\Controller; use Symfony\Component\HttpKernel\Exception\FlattenException; use Symfony\Component\HttpKernel\Log\DebugLoggerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class SimsuExceptionController extends \Symfony\Bundle\TwigBundle\Controller\ExceptionController { public function __construct(\Twig_Environment $twig, $debug) { $this->twig = $twig; $this->debug = true; } /** * Converts an Exception to a Response. * * A "showException" request parameter can be used to force display of an error page (when set to false) or * the exception page (when true). If it is not present, the "debug" value passed into the constructor will * be used. * * @param Request $request The request * @param FlattenException $exception A FlattenException instance * @param DebugLoggerInterface $logger A DebugLoggerInterface instance * * @return Response * * @throws \InvalidArgumentException When the exception template does not exist */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { $code = $exception->getStatusCode(); $error = $code; switch($code){ case 405: case 500: $error = "Error.405"; break; } return new Response($this->twig->render('SimsuGeneralBundle:Exception:exception.html.twig',array('error' =>$error))); } }
tout ceci fonctionne parfaitement en environnement dev mais pas en prod ... pourtant c'est bien le fichier config.yml qui est modifié...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 {# BUNDLE GENERAL - Fichier Notice.html #} {% extends 'SimsuGeneralBundle:Default:index.html.twig' %} {% block title %}{{ parent() }} {{ 'Notice.Titre'|trans }} {% endblock %} {% block body %} <div class="alert alert-error alert-block">{{ error|trans }}</div> {% endblock %}
Dans firefox j'obtient une page blanche quand je fais un test bidon et dans chrome ceci:
J'ai essayé de modifier directement le fichier ExceptionController à sa source en commentant toute la méthode showAction et ça ne fait rien...The copass page isn’t working
copass is currently unable to handle this request. 500
Si quelqu'un a une idée je suis preneur
je suis en symfony 2.8
D'avance merci!
Partager