Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2012, 11:12
Avatar de Z3R0N3
Z3R0N3
 
Fecha de Ingreso: junio-2010
Ubicación: En algún lugar de la mancha de cuyo nombre no quiero acordarme...
Mensajes: 73
Antigüedad: 13 años, 10 meses
Puntos: 4
Personalizar Todos los Errores de Symfony 1.4

Hola muy buenas señores, ando algo perdido en lo
que busco, quizás ustedes puedan echarme una mano si lo desean, lo
explico por aquí:

Quiero personalizar todos los errores que puedan ser producidos
(cualquier codigo de estado que sea un error. 404, 500, 204, 301....
etc.) y además mostrar sugerencias en base al "modulo" y/o "acción"
desde donde se ha producido dicho error.

También me gustaría poder indicar la redirección mediante el archivo
"setting.yml" de la aplicación, algo como esto:

Código:
    error_404_module: comunes 
    error_404_action: errores 
    error_500_module: comunes 
    error_500_action: errores 
    error_204_module: comunes 
    error_204_action: errores 
    error_301_module: comunes 
    error_301_action: errores 
    ........
Dentro del directorio "app/frontend/modules/comunes" en el archivo
"action.class.php" defino "executeErrores" en el cual he de recibir el
código de estado que se ha producido y el módulo desde donde se
produjo el error o excepción para así, conseguir mostrar el partial
"app/frontend/modules/comunes/templates/_errorXXXSuccess.php" y el
partial de la sugerencia que busco y extraigo del módulo "referer"
donde se ha producido el error.

Pues bién, esa es la idea, contenido dinámico para diferentes tipos de
Error en diferentes circunstancias y funcionando perfectamente con los
códigos de tipo 404 pero no con el resto...

He leido que podría situarme en medio del evento creando unos archivos
"config/error.html.php" y "config/exception.html.php". Efectivamente
si produzco por ejemplo y manualmente un error 500 esos archivos son
ejecutados. El problema está en que desde ahí no puedo acceder a las
variables de symfony. Porque de ser así yo podría invocar a "comunes/
errores" y a las malas enviarle como parámetros el código de estado
del error y el módulo donde se ha producido, pero no es así. Desde ahí
lo más que puedo hacer es jugar con $_SERVER y el Routing.yml pero no
consigo buenos resultados ya que se mezcla el entorno de Producción
con Desarrollo (/frontend_dev.php) y es algo que también quiero
evitar.

Es decir, quiero conseguir lo mismo que en "setting.yml" hace
"error_404_module" y "error_404_action" pero con otros códigos de
error. Permitiéndome así mostrar mis páginas personalizadas en
producción en función de "error o excepción" y/o "módulo o acción"
donde se haya lanzado el error desde Producción, y en caso de estar en
modo de Desarrollo (/frontend_dev.php/....), mostrar el Dispatch de
Symfony.

Seguramente esté complicandome la vida y haya alguna forma más
sencilla de hacer lo que busco pero tras hacer miles de combinaciones
no consigo el resultado adecuado. Incluso quizás si Symfony no permite
redireccionar otros tipos de error desde "setting.yml" es porque se
los reserva para él o algo por el estilo. No lo entiendo.

Ruego me ayuden por favor ya que tampoco encuentro documentación al
respecto y seguro que por aquí al menos lo dejamos público para otras
personas que quieras hacer algo parecido.


Muchísimas Gracias y Un Saludo!