Una de las cosas que más requeria cuando estaba creando mi proyecto en Symfony2, era el tema de saber cuando ocurria un error lo enviara por email, pero de una manera legible y sobre todo con información completa. Luego de buscar y buscar varios Bundle me encontre con ElaoErrorNotifierBundle.
Este Bundle lo que hace es enviarte el error generado por correo pero te envia el mismo error que te muestra en DEV, es decir, con toda la información de donde se genero el error, porque archivos paso, quien genero el error, si existia una sesion, etc.
La instalación es bastante simple, incluimos en nuestros archivo composer.json la siguiente linea
"elao/error-notifier-bundle" : "dev-master"
Ejecutamos nuestro update
php composer.phar update elao/error-notifier-bundle
Despues, agregamos a nuestro AppKernel.php
new Elao\ErrorNotifierBundle\ElaoErrorNotifierBundle(),
Y lo unico que nos faltaría sería agregarlo a nuestro archivo config.yml, en primera instancia lo agregaremos a este mismo (config.yml), ya que necesitamos hacer pruebas para ver si esta enviando o no los correos
elao_error_notifier: from: %my_errores_mailer.from% to: %my_errores_mailer.to% handle404: true # default : false handlePHPErrors: true # catch fatal erros and email them handlePHPWarnings: true # catch warnings and email them
Obviamente las variables entre %% las tengo declaradas en mi parameters.yml que son
my_mailer.class: AN\MiBundle\Services\Mail\MailManager my_mailer.from: contactar@hola.cl
Donde MailManager es una clase de correo personalizada que tengo.
Ahora generamos cualquier error en nuestro proyecto, por ejemplo escribiendo una URL que no exista, y aparte de mostrarlo en pantalla (ya que estamos en DEV) lo debería enviar por correo.
Si todo esta funcionando bien, entonces movemos nuestro codigo agregado al config.yml al archivo config_prod.yml, con esto le estamos indicando que solo cuando exista un error en Producción lo envie por correo.