Si ya hemos instalado Xdebug en nuestro PHP (más información aquí) seguramente nos faltará un paso para utilizarlo de forma integrada en NetBeans. Para comprobarlo basta con acceder a la opción "Depurar"->"Debug Proyect" con un proyecto PHP abierto tal y como se muestra a continuación:
Si no tenemos Xdebug configurado para trabajar desde NetBeans, en la parte inferior derecha aparecerá una barra de progreso como la siguiente:
Que permanecerá durante mucho tiempo moviéndose sin ningún resultado. Mejor interrumpirlo con el botón que aparece a la derecha de la barra. Entonces, nos aparecerán indicaciones sobre los pasos que tenemos que seguir. Se trata de un mensaje como este:
Así que, en definitiva, lo que tenemos que hacer es añadir a nuestro php.ini las siguientes líneas:
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost (o la ip del servidor Web)
xdebug.remote_port=9000
Luego, como siempre que hacemos cambios en el php.ini hay que reiniciar Apache para que la nueva configuración surta efecto.
Pequeño contratiempo
Una vez hecho todo lo anterior, al iniciar de nuevo la depuración desde NetBeans me he encontrado con un mensaje como el siguiente:
Para solucionarlo he dicho que sí y he indicado el puerto 9001 en el campo "Debugger Port" de la ventana que se abre y a la que también se puede acceder desde "Herramientas"->"Opciones"->"PHP".
Luego he hecho lo mismo en el php.ini (xdebug.remote_port=9001) y he reiniciado Apache. Ahora ya todo funciona a la perfección.
En esta página hay documentación detallada y oficial de NetBeans sobre cómo configurar Xdebug.
Mostrando entradas con la etiqueta XDEBUG. Mostrar todas las entradas
Mostrando entradas con la etiqueta XDEBUG. Mostrar todas las entradas
sábado, 19 de marzo de 2011
¿Qué es Xdebug?
Xdebug es una extensión para PHP que proporciona un soporte muy completo para la depuración de nuestros scripts. Enumeramos continuación sus características principales:
- Añade características avanzadas en el volcado del valor de las variables, al sobreescribir la función de PHP var_dump().
- Las trazas de error incluyen información personalizable, y son lanzadas automáticamente cuando PHP genera un mensaje a nivel de warning, error o info.
- Permite hacer trazas personalizables de funciones: invocaciones, valor y tipos de parámetros y valores de retorno.
- Incluye un analizador de cobertura de código. No sólo es útil para posibles detecciones de código inaccesible sino también para conocer el alcance de nuestros test unitarios.
- Hacer análisis de rendimiento. Detectar cuellos de botella, tiempos muertos, carga de recursos y en general, el comportamiento de nuestros script PHP con la información manejada en tiempo de ejecución. La información generada por el profiles puede ser posteriormente analizada visualmente con las aplicaciones opensource y GPL KCacheGrind (linux+KDE), o WinCacheGrind (Windows).
- Añade la posibilidad de depuración a cualquier cliente que sea capaz de ejecutar scripts PHP y soporte el protocolo DBGp. Esto es, ofrece características de depuración remota para Eclipse PDT, NetBeans, Notepad++, Protoeditor, Komodo... ¡e incluso vim!!
- Xdebug incluye un cliente de depuración standalone y opensource: Xdebugclient 0.9.0
Instalación de Xdebug
Para instalar Xdebug (http://www.xdebug.org/) lo mejor es dejar que su propia Web nos indique qué fichero es el adecuado para nuestra configuración y cómo instalarlo.
Solo tenemos que pegar el fuente de un phpinfo() obtenido de nuestro sistema en http://www.xdebug.org/find-binary.php. En cuanto hagamos clic sobre el botón "Analyse my phpinfo() output" obtendremos las indicaciones.
En mi caso he obtenido lo siguiente:
Server API: Apache 2.0 Handler
Windows: yes - Compiler: MS VC6 - Architecture: x86
Zend Server: no
PHP Version: 5.3.4
Zend API nr: 220090626
PHP API nr: 20090626
Debug Build: no
Thread Safe Build: yes
Configuration File Path: C:\WINDOWS
Configuration File: C:\PHP\php.ini
Extensions directory: C:\PHP\ext
Solo tenemos que pegar el fuente de un phpinfo() obtenido de nuestro sistema en http://www.xdebug.org/find-binary.php. En cuanto hagamos clic sobre el botón "Analyse my phpinfo() output" obtendremos las indicaciones.
En mi caso he obtenido lo siguiente:
Summary
Xdebug installed: noServer API: Apache 2.0 Handler
Windows: yes - Compiler: MS VC6 - Architecture: x86
Zend Server: no
PHP Version: 5.3.4
Zend API nr: 220090626
PHP API nr: 20090626
Debug Build: no
Thread Safe Build: yes
Configuration File Path: C:\WINDOWS
Configuration File: C:\PHP\php.ini
Extensions directory: C:\PHP\ext
Instructions
- Download php_xdebug-2.1.0-5.3-vc6.dll
- Move the downloaded file to C:\PHP\ext
- Edit
C:\PHP\php.ini
and add the line
zend_extension = C:\PHP\ext\php_xdebug-2.1.0-5.3-vc6.dll
- Restart the webserver
Suscribirse a:
Entradas (Atom)