Muchos programadores de PHP y de lenguajes de scripting en general tienden a hacer debug imprimiendo mensajes por pantalla con funciones cómo echo, var_dump, print_r

Lo cierto es que aunque es bastante sencillo el uso de estas funciones para ver que valores llegan a cierto punto de nuestra aplicación, no es recomendable, por el simple hecho de que esta forma de hacer debug nos hace modificar el código añadiendo una o más lineas, con lo que realmente no estamos comprobando el mismo código o hemos de prestar atención de que añadimos las lineas en el lugar correspondiente para que no afecte a la traza normal del mismo.

A parte de si nos gusta más o menos imprimir valores por pantalla, muchas veces habréis usado debuggers en otros lenguajes cómo java, c, c++… ¿Y porque no usarlo en PHP?

Instalación de xdebug en Ubuntu.

sudo apt-get install php5-xdebug

Editar el fichero de configuración del módulo xdebug que normalmente suele estar en /etc/php5/apache2/conf.d/20-xdebug.ini y añade las siguientes lineas:

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.max_nesting_level=300

Finalmente sólo nos queda reiniciar el servicio apache2.

sudo service apache2 restart

Ahora cualquier IDE que este escuchando ese puerto podrá hacer debug de nuestra aplicación PHP. Para ello cada IDE tiene un sistema distinto, pero por lo general, suelen llamar al script PHP pasándole el paramétro XDEBUG_SESSION_START con valor 1.

E.g. http://test.local?XDEBUG_SESSION_START=1

Si el IDE que usáis no lo hace automáticamente podéis usar la extensión de chrome xdebug helper que añade esta variable automáticamente con un sólo clic en el icono de la extensión el la barra de direcciones del navegador.

Haciendo debug en PHP con VIM

Por último si usáis VIM cómo IDE para PHP os recomiendo el plugin vdebug para hacer debug en vuestras aplicaciones PHP. És muy sencilla de usar y os permite hacer cualquier cosa que estéis acostumbrados a hacer con cualquier otro IDE, añadir breakpoints, ejecutar paso a paso entrando en las funciones o sin entrar, ver el valor de las variables…

Os dejo un vídeo demostración donde podréis ver cómo se hace debug de un pequeño script de prueba en VIM después de haber realizado todos los pasos del post, que aunque parecen muchos porque explico cada paso para que sirve, no son más que dos o tres.

Raül Torralba Adsuara

Software developer, organizer at @betabeersCAS, vim lover and artansoft's blogger.

rtorralba raul_torralba


Published