Saltar la navegación

4.2.- Depuración de código en PHP.

Imagen de una amriquita roja
djcowan (Dominio público)

Entre las características de depuración que incorpora Xdebug destacan:

  • Creación de registros con las llamadas a funciones que se produzcan, incluyendo parámetros y valores devueltos.
  • Creación de registros de optimización, que permitan analizar el rendimiento de los programas.
  • Depuración remota.

Vamos a centrarnos en la depuración remota utilizando VSC con la extensión "PHP Debug" instalada.

  • Paso 1: Abrimos el archivo PHP del que vayamos a hacer el debug (en este caso "cesta.php"). Le damos al Triángulo con el "bug" encima.
  • Paso 2: La primera vez nos pide crear un archivo "launch.json" con la configuración. Pulsamos sobre "create  launch.json file".
  • Paso 3: Al pulsar nos pide el lenguaje del fichero sobre el que vamos a hacer debug, seleccionamos PHP.
  • Paso 4: Vemos que nos ha creado un json con una configuración estándar, si no hemos cambiado nada en Xdebug lo dejamos tal cuál.
  • Paso 5: Ponemos de ejemplo dos "BreakPoints" en cesta.php.
  • Paso 6: Le damos a RUN para empezar la depuración.
  • Paso 7: Cargamos el archivo "cesta.php", en el navegador, para llegar a él hacemos login, seleccionamos dos o tres productos de listado.php y pulsamos "Ir a cesta", en este momento vemos que se nos abre VSC. Nos aparece la linea 9 (donde pusimos el primer Beakpoint) de amarillo y arriba tenemos un pequeño panel de botones (continue, step into, step over ...) si observamos a la izquierda ya me aparecen variable y sus valores, en el caso de $listado aparece uninitialized.
  • Paso 8:  Como se ha parado en la llamada a consultar producto, le damos a "step into (F11)" y vemos que se nos abre en VSC la página conexión.php y la función consultarProducto(), en el panel de arriba le damos a continuar (play)
  • Paso 9: Vemos que a la izquierda la variable $listado, que antes no estaba inicializada, guarda ya el nombre y el precio del primer producto, si repetimos lo mismo vemos que listado se va llenando con los datos de los productos seleccionados.

Recomendación

Una vez que este depurando puedes utilizar los siguientes atajos de teclas (suelen ser comunes para todos los depuradores).

  • Continuar tecla F5: Continua la depuración.
  • Step Into tecla F1: Ejecuta la siguiente línea de código. Si esa línea es una llamada a otra función, el programa entrará en esa función.
  • Step Over tecla F10: Igual que la anterior, pero si la siguiente línea es una función, la ejecuta sin entrar en ella.
  • Step Out tecla Shift+F11: Sale de la función actual.
  • Stop tecla Shift+F5: Detiene la depuración.

Autoevaluación

Pregunta

Al instalar la extensión Xdebug en PHP, se instala automáticamente la extensión para Visual Studio Code, que permite gestionar la depuración del código.

Respuestas

No.

Sí.

Retroalimentación