Error Page modifiée ne fonctionne pas en prod
Bonjour
Pour mon application je souhaite gérer les error page.
J'ai donc fait plusieurs choses:
modifier mon config.yml:
Code:
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 |
ajouter mon service:
Code:
1 2 3 4
|
simsu.controller.exception:
class: Simsu\GeneralBundle\Controller\SimsuExceptionController
arguments: [@twig, %kernel.debug%] |
créé mon controller:
Code:
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)));
}
} |
créer ma vue:
Code:
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 %} |
tout ceci fonctionne parfaitement en environnement dev mais pas en prod ... pourtant c'est bien le fichier config.yml qui est modifié...
Dans firefox j'obtient une page blanche quand je fais un test bidon et dans chrome ceci:
Citation:
The copass page isn’t working
copass is currently unable to handle this request. 500
J'ai essayé de modifier directement le fichier ExceptionController à sa source en commentant toute la méthode showAction et ça ne fait rien...
Si quelqu'un a une idée je suis preneur :)
je suis en symfony 2.8
D'avance merci!