Cómo debuggear una aplicación PHP sin usar var_dump

Inicio / Cómo hacer para... / Cómo debuggear una aplicación PHP sin usar var_dump

Una de las tareas que más tiempo consume durante el desarrollo de una aplicación (web o no) es el debugging. Ese momento en que estás seguro de que todo anda bien, pero por las dudas… hay que probarlo.

Y, como siempre, algo no sale exactamente como esperabas. Es entonces cuando te toca arremangarte, buscar una nueva taza de café, silenciar el teléfono y hurgar.

El modo común de encarar esta tarea en el universo php es usar mucho la función var_dump (Algo bastante feo de lo que hablo en más detalle en mi libro).

Asumiré que ya sabés de qué se trata xdebug, que ya está instalado y configurado en tu entorno y que estás familiarizado (un poco al menos) con PhpStorm.

Desde dentro del IDE podés lanzar tu aplicación usando el botón de play (El triángulo verde):

Lo que ves a la izquierda (En este caso app.php) es el nombre de la configuración de ejecución (Un concepto propio de PhpStorm que define un poco qué es lo que esperás que haga el IDE cuando hagas click en el botón).

Lo primero que tenés que conocer entonces es este cuadro de diálogo (Al que accedés al editar la configuración de debugging):

A la izquierda tenés todas las posibles configuraciones base (Debuggear una aplicación web, un script de CLI, etc…).

A la derecha los detalles particulares. Lo más importante es configurar correctamente el servidor:

Dentro de este cuadro tenés que mirar especialmente los campos:

  • Host: El servidor donde está desplegada tu aplicación (Si usás Xampp o algo así será localhost, si no puede ser la IP de la computadora donde esté tu código, dependerá de tu entorno particular el valor que debés ingresar).
  • Port: El puerto donde está escuchando el servidor web al que te vas a conectar (Por lo general será el 80)
  • Debugger: Qué software de debugging usarás (Los estándares son XDebug y Zend Debugger, si no usás ZendFramework te recomiendo usar el primero).

Por último, muy importante es configurar correctamente los mapeos de directorios. Este concepto puede solar un poco extraño al principio, pero es bastante claro: se trata de indicar dónde está, en el sistema de archivos local, el código que se está ejecutando en el servidor.

Para entenderlo un poco mejor: el código que vos estás viendo en tu IDE está guardado en tu disco local (salvo que estés editando directamente sobre el servidor, algo que, salvo que uses una máquina virtual sería muy mala idea), mientras que el código que se ejecuta está en el webserver que tiene instalado el debugger, con lo cual, para poder ir corriendo paso-a-paso el IDE necesita conocer qué archivo debe mostrar en base a la comunicación con el debugger. Para eso precisamente es que se establecen estos mapeos.

Una vez terminada esta configuración basta volver a la barra de arriba

Pero esta vez hacer click en el botón del “bichito” (Bug) y, si todo sale bien, verás una pantalla como esta en la parte de abajo de tu IDE:

Y ahora se trata sólo de colocar breakpoints en algunos lugares estratégicos del código (Simplemente haciendo click a la izquieda de la línea seleccionada):

 Y recargar la página para que, cuando llegue a este lugar de la ejecución se vea algo como:

En la parte del código la línea azul marca el código que está a punto de ejecutarse, pero la parte más interesante es la de abajo a la derecha, donde podés ver el contenido de las variables en tiempo real.

De esta forma podés debuggear tu código sin temer dejar olvidado algún var_dump por ahí.

¿Te quedaron preguntas? ¡Adelante con los comentarios!

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

Un comentario

Deja un comentario

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