Mostrar errores en Zend Framework 2

No debe haber nada peor que programar a ciegas. Es decir, cometer errores y no estar seguro por qué se producen. Durante mucho tiempo esta fue la manera de programar en Javascript por ejemplo. Por suerte las cosas cambiaron y ahora hay muchas herramientas para depurar el código.

Trabajando con Zend Framework 2 una de las primeras tareas que vamos a querer realizar es habilitar la visualización de errores. Vamos a realizar una serie de pasos para lograrlo.

En primer lugar al armar esta pequeña guía me encontré con el problema de no tener instalada la extensión php5-intl,  internacionalización de PHP.  Si ya la tienen, no tendrán ningún inconveniente. De lo contrario, deberán instalarla. En Ubuntu es tan simple como escribir en consola:

Por supuesto, si les faltase alguna otra extensión de PHP, deberían instalarla o activarla si es que ya la tienen en sus sistemas. Recuerden que si están trabajando con Apache, luego deben reiniciar el servidor.

Básicamente vamos a hacer dos cosas. La primera es copiarnos la plantilla de muestra de error que viene con la aplicación esqueleto. Este archivo es un HTML con algo de PHP y se encuentra en module/application/view/error/index.phtml. Debemos copiarlo en la misma ubicación pero de nuestro módulo. Por ejemplo, siguiendo el último ejemplo que vimos sobre Zend Framework 2 en El Replicante, sería la ubicación module/HolaMundo/view/error/index.phtml. Si los directorios no existen, entonces deberemos crearlos.

Lo segundo a hacer es abrir el archivo module.config.php en el directorio config dentro del módulo (no se confundan con application.config.php que está fuera del módulo y dentro de config). Aquí vamos a verificar una de las configuraciones. En la clave ‘view_manager’ del array principal debe estar en true la línea que indica mostrar excepciones:

Y también se debe estar apuntando al template de error en la clave ‘exception_template’

No hace falta incluir el template en el mapa de templates que aparece más abajo. Sin embargo, si lo hacemos, no habrá ningún tipo de problemas.

Guardando estos cambios, ya es posible visualizar los errores. Para eso, vamos a generar uno. En el controlador principal podemos agregar una llamada a un método inexistente. Por ejemplo:

Cuando carguemos la página, nos encontraremos con un error como este.

error-zend-framework

Podemos ver el lugar exacto donde está el problema: archivo y número de línea. Luego, un mensaje donde nos queda bien claro qué es lo que falló. En este caso, la que ocasionó esta falla es la línea que ingresamos para provocarla. Abajo hay todo un trace que resulta muy útil a la hora de depurar.

Y todo esto es algo magnífico, porque en base a este error podremos saber dónde nos equivocamos, lo que nos hará solucionar más rápido el problema. Pero mejor que eso es que al empezar a visualizar los errores también empezamos a tener un conocimiento más sólido del framework.

Soy programador web y me desempeño como Líder Técnico y de Proyectos en Polar Bear Development. Trabajo con tecnologías como PHP, Javascript, MySQL y HTML5 para el desarrollo de sitios y sistemas web. Me especializo en Zend Framework 2 y otros frameworks MVC, como también en WordPress y otros CMS. Lidero equipos de desarrolladores trabajando con Scrum. Vivo en Buenos Aires, Argentina.
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*