Saludos siguiendo en la tónica de las buenas prácticas de desarrollo esta vez les traigo un How To sobre Xdebug, esta es una herramienta que desde la encontré me ha sido de gran ayuda al momento de detectar cuellos de botellas y profiling en la aplicaciones que suelo desarrollar sean pequeñas o grandes (En PHP), como valor agregado que en lo personal encontrado en esta extensión es la posibilidad de entender estructura de algunos framework interesante (Tomates, Kumbia, Symfoni, otros), si alguna vez haz trabajado con FireBug sabras de lo que hablo.

Para la instalación de esta extensión lo haremos sencillo con PEAR/PECL entremos a una consola.

 # pecl install xdebug

Una vez instalado este paquete vemos el infophp para verificar que la extensión se halla cargada correctamente.

screenshot.png

Si esto se muestra todo anda bien, ahora falta configurar xdebug para que nos genere los archivos con la información del debugging y profiling, esta información que muestro fue tomada del blog de Jesus Lara donde aparte de hablar de la configuración de este archivo explica la herramienta.

NOTA: donde realizo un cambio es en donde se muestra la ruta donde se instalo xdebug.so.

Configurando xdebug

Para la activación de xdebug he creado un archivo (dentro del directorio conf.d de php5) llamado xdebug.ini que contendrá las instrucciones para activar la extensión y activar de una vez el profiling.

como root:

#touch /etc/php5/conf.d/xdebug.ini

luego, agregamos:

#vim /etc/php5/conf.d/xdebug.ini
zend_extension_ts="/usr/lib/php5/20060613+lfs/xdebug.so"
 
[xdebug]
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/tmp/php5/profiler

donde fíjense que la ruta es donde phpize envía mis extensiones (en este caso, xdebug.so)

Agrego adicionalmente una sección xdebug (se agradece mantener ordenado los archivos ini) y activar “profiler_enable” (1 lo activa, 0 lo desactiva) e indicar la ruta (especificada por profiler_output_dir) donde se ha de crear el archivo de profiling.

guardamos:

:wq!

y reiniciamos nuestro apache:

#/etc/init.d/apache2 restart

Ya con esto todo lo que ejecutemos de manera local nos genera un archivo con el debugging solo nos queda visualizar los estos archivos, pero antes debemos instalar Kcachegrinf, para hacer esto como es Debian :) ejecutamos.

#aptitude install kcachegrind

Listo ahora si buscamos los archivos en la ruta indicada en /tmp/php5/profiler

Falta instalar un paquete para que imágenes como esta se generen.

screenshot-1.png

Este es el paquete particularmente en mis repositorios no estaban si quieren pueden hacer la prueba.

#aptitude search graphviz

Si encuentran algo excelente si no les dejo el enlace donde lo puede descargar y posterior instalar con:

#dpkg -i ruta_donde_guardo/graphviz_2.16.1-3_i386.deb

Con esto ya podemos comenzar visualizar las imágenes que se muestra arriba.

  • Share/Bookmark