Debugar es una de las primeras cosas que aprendemos cuando comenzamos a desarrollar y nadie en su sano juicio es capaz de poner en duda la importancia de esta tarea.
Por otro lado, es increíble la cantidad de desarrolladores para los que si bien en otros lenguajes utilizar un programa para debugar forma parte de su día a día, cuando programan en php lo hacen de una forma un tanto rudimentaria valiéndose de funciones cómo echo(), print_f(), die() u otras que les ayuden a mostrar en el navegador lo que deberían ver en la herramienta de debug.
Lo reconozco, yo también lo he hecho durante largos periodos de tiempo, y por ese motivo conozco de primera mano la gran diferencia que existe entre utilizar una herramienta adecuada o no hacerlo. Lo peor de todo es que solucionar esta situación es muy sencillo, y basta con un poco de disciplina y 15 minutos de configuración.
Aprovechando que tengo un entorno de desarrollo relativamente nuevo, vamos a ver como se configura. El software que utilizo es:
- Ubuntu 18.04.1 LTS
- Apache 2.4.29
- PHP 7.2.10
- NetBeans 8.2
- Mozilla Firefox
Vamos a dar por hecho que ya tenemos este software instalado y nos centraremos en instalar y configurar XDebug.
Configuración del servidor
El primer paso es comprobar si tenemos XDebug instalado, por defecto no suele ser así. Esta comprobación la podemos hacer mediante phpinfo(). Si no está instalado lo instalamos:
sudo apt-get install php-xdebug
Buscamos el archivo de configuración de la extensión, en mi caso /etc/php/7.2/apache2/conf.d/20-xdebug.ini. Lo editamos:
sudo vim /etc/php/7.2/apache2/conf.d/20-xdebug.ini
El archivo debería quedar así:
zend_extension=xdebug.so
xdebug.profiler_enable = On
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
La primera línea que habilita la extensión de php ya deberíais tenerla, así que solo tendríamos que agregar el resto. Prestad especial atención al puerto, pues tendrá que coincidir con el que especifiquemos en NetBeans.
Ya sólo nos queda reiniciar Apache y pasaremos a configurar NetBeans:
sudo service apache2 restart
Configuración de NetBeans
Ya casi estamos. Abrimos la configuración de NetBeans mediante los menús «Tools» -> «Options». Accedemos a la configuración de PHP y en la pestaña «Debugging» nos aseguramos de que hemos especifiaco el mismo puerto que en la configuración de XDebug para PHP, en nuestro caso el puerto 9000.
Guardamos la configuración, salimos y con esto ya tenemos toda la configuración relativa a XDebug hecha.
La última configuración necesaria para poder debugar se realiza en la configuración de cada proyecto de Netbeans. Para acceder a ella debemos tener visible la ventana de proyectos, botón derecho sobre el propio proyecto y seleccionamos la opción «Properties»del menú.
En la venta de configuración, accederemos al menú «Run Configuration» y nos aseguraremos que los campos «Project URL» y «Index File» están correctamente configurados.
Conclusión
Una configuración muy sencilla que nos ahorrará muchos quebraderos de cabeza. ¿Y tú cómo debugas cuando programas en PHP?