¡Hola! Me parece que andas usando un bloqueador de anuncios =( ¿Nos desbloqueas? ¿Por qué?
F13

Funcion 13

Debugging en PHP con MAMP y PhpStorm (y Xdebug)

En mi trabajo en Accenture, el lenguaje en el que están la mayoría de las aplicaciones es… Java. Aunque no es santo de mi devoción, he de reconocer que tiene algunos puntos interesantes.

Una de las cosas a las que te acostumbras es a arrancar el tomcat en modo Debug en Eclipse, poner unos cuantos puntos de interrupción y ale, a debuguear como un señor.

Con PHP siempre he sido de usar echo, print_r, var_dump e incluso error_log para ir viendo por donde pasa el script, qué vale una variable y demás. Seguro que haces lo mismo… ¿o no?

En cualquier caso, siempre pensé que había una forma más profesional de hacerlo y hoy vamos a ver cómo podemos hacerlo en un Mac usando MAMP y PhpStorm. Asumiré que tienes ambos programas instalados en tu equipo.

Configurando Xdebug

Si tienes instalado MAMP, Xdebug viene de serie… pero desactivado. Para activarlo vamos a tener que ir a:

/Applications/MAMP/conf/php[tuversion]/php.ini

Una vez abierto el fichero con tu editor de textos favoritos, ve al final, a la sección [xdebug] y descomenta la línea con zend_extension.

Además, añade lo siguiente:

xdebug.default_enable=1  
xdebug.remote_enable=1  
xdebug.remote_host=localhost  
xdebug.remote_port=9000  
xdebug.idekey=Tuclave  
xdebug.remote_autostart=1  

Reinicia los servidores y ya tenemos Xdebug corriendo en Apache. Para comprobarlo, ve al phpInfo de Apache y deberías ver Xdebug configurado.

Configurando PhpStorm

Ahora que ya tenemos nuestro servidor configurado, ha llegado la hora de configurar nuestro IDE. Lo primero que tenemos que hacer es darle al botón de ‘PHP Listen debug connections’ que, una vez pulsado, pasará de estar rojo a verde.

Una vez hecho eso, pon un punto de ruptura donde quieras.

Ahora le daremos al menú Run > Debug configurations y le daremos al icono del más. De las opciones, escogeremos PHP Remote Debug.

Una vez hecho eso tendremos que crear un nuevo servidor, que no es otro que el servicio de Xdebug. Le daremos a los … junto al desplegable para crear un nuevo servidor. Los ajustes deberían quedar tal que así:

Es importante destacar que el puerto de escucha debe ser el mismo que hubiéramos configurado en php.ini.

Finalmente, en la pantalla anterior, debemos seleccionar el servidor que acabamos de crear y, en el campo Ide key (session id), deberemos especificar la clave que marcamos en el la opción xdebug.idekey. En nuestro caso fue Tuclave.

Una vez hecho eso podemos darle a Run > Debug y seleccionar “Local” que es el que acabamos de crear. Si todo fue bien, veremos una ventana como esta, que nos indica que está a la espera de que alguien se conecte con la clave que le hayamos especificado. En mi caso 'Belelros'.

En el momento en que accedamos a la página que tiene el punto de interrupción, el programa saltará y nos mostrará las variables globales disponibles:

Desde aquí ya tenemos la opción de parar el script, inspeccionar variables, evaluar sentencias, etc.

Si el artículo te pareció interesante, útil o incluso equivocado, por favor considera el dejar un comentario. ¡Lo apreciaré mucho!

Programador Front-end en First + Third y Potato. Trabajando con JavaScript y HTML5 desde el corazón de Sevilla.

Comentarios ¡Únete a la conversación!