Usar XDebug para depurar proyectos PHP
XDebug es una herramienta de depuración indispensable en el desarrollo de PHP, que proporciona potentes funciones de depuración de puntos de interrupción, análisis de rendimiento y detección de cobertura de código. Con XDebug, los desarrolladores pueden establecer puntos de interrupción en el código, verificar valores de variables, rastrear la pila de llamadas de funciones, analizar cuellos de botella en el rendimiento, entre otros, lo que aumenta significativamente la eficiencia del desarrollo de PHP y la calidad del código.
Introducción a XDebug
XDebug es una extensión de PHP que proporciona funciones de depuración y análisis. Permite a los desarrolladores establecer puntos de interrupción en el código, ejecutar el código paso a paso, verificar los valores de las variables y el estado del programa, ayudando a los desarrolladores a comprender y depurar mejor el código.
Habilitar Xdebug y configurar el entorno de depuración
ServBay viene de fábrica con XDebug adjunto a cada versión de PHP.
Aviso
Por favor, consulta el artículo Cómo habilitar el módulo Xdebug incluido de ServBay para obtener información sobre cómo habilitar el módulo Xdebug
y configurar PHPStorm
.
Ejemplo específico de depuración
Estructura del proyecto de ejemplo
Supongamos que tenemos un proyecto PHP simple, la estructura del directorio es la siguiente:
servbay_xdebug_app/
├── src/
│ └── Calculator.php
└── index.php
2
3
4
El contenido del archivo Calculator.php
es el siguiente:
<?php
namespace App;
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
El contenido del archivo index.php
es el siguiente:
<?php
require 'vendor/autoload.php';
use App\Calculator;
$calculator = new Calculator();
$sum = $calculator->add(5, 3);
$difference = $calculator->subtract(5, 3);
echo "Sum: " . $sum . "\n";
echo "Difference: " . $difference . "\n";
2
3
4
5
6
7
8
9
10
11
Establecer puntos de interrupción
Queremos depurar el método add
de la clase Calculator
para ver cómo se ejecuta. Abre el archivo Calculator.php
en PHPStorm y establece un punto de interrupción en la línea return $a + $b;
.
Iniciar la sesión de depuración
- En PHPStorm, haz clic en el botón
Start Listening for PHP Debug Connections
(icono de un pequeño insecto) en la barra de herramientas superior. - En el navegador, visita tu aplicación PHP, por ejemplo,
https://servbay-xdebug-app.test/index.php
.
Proceso de depuración
- Cuando el navegador accede a
index.php
, XDebug se conectará automáticamente a PHPStorm y pausará la ejecución en el punto de interrupción establecido. - En PHPStorm, verás que el código está pausado en la línea
return $a + $b;
del métodoadd
en el archivoCalculator.php
.
Verificar valores de variables
- En la ventana de depuración de PHPStorm, puedes ver la línea actual de código en ejecución, la pila de llamadas, los valores de las variables, entre otra información.
- En el panel
Variables
, puedes ver que los valores de las variables$a
y$b
son5
y3
respectivamente.
Ejecución paso a paso
- Haz clic en el botón
Step Over
(o presionaF8
), para ejecutar el código paso a paso. - Observa los cambios en los valores de las variables y asegúrate de que el método
add
devuelve el resultado correcto.
Continuar la ejecución
- Haz clic en el botón
Resume Program
(o presionaF9
), para continuar la ejecución del código. - El programa seguirá ejecutándose hasta que encuentre el siguiente punto de interrupción o termine de ejecutarse.
Verificar salida
- En el navegador, revisa los resultados de la salida, que deberían mostrar:
Sum: 8 Difference: 2
1
2
Conclusión
Con XDebug, los desarrolladores pueden establecer cómodamente puntos de interrupción en el código PHP, verificar valores de variables, ejecutar el código paso a paso, y así comprender y depurar mejor el código. En el desarrollo práctico, la función de depuración de puntos de interrupción de XDebug puede ayudar a los desarrolladores a localizar y resolver problemas rápidamente, aumentando la eficiencia del desarrollo y la calidad del código. A través del ejemplo específico de depuración anterior, podemos ver las potentes funciones y la facilidad de uso de XDebug en la depuración de proyectos PHP.