viernes, 27 de junio de 2008

Depurar PHP en NetBeans 6.1

Como lo prometí en el anterior post: Usando NetBeans IDE Early Access for PHP comentaré sobre cómo depurar la ejecución del PHP desde NetBeans.

Antes de empezar...



Algo que no mencioné en mi anterior post. Tenemos que establecer la ubicación del intérprete del PHP. Si estamos en Windows, necesitamos saber dónde se encuentra el php.exe. Si estás utilizando algún WAMP, búscalo dentro de la carpeta donde se instaló el wamp.



Yo tengo el PHP en c:\opt\php-5.2.5-Win32



Ahora, dentro del NB, entramos a Tools > Options, y seleccionamos la opción "Misceláneas"; y dentro seleccionamos la ficha PHP. En la entrada  "PHP 5 Interpreter", debemos especificar la ubicación exacta del php.exe.





Hacemos clic en "Ok".



Para probar, hagamos un proyecto simple de PHP, creemos un archivo llamado test.php que contendrá el siguiente código:



test.php

1 

2<?php print "La versión del PHP es ".phpversion();

3 ?>

4

5







Le damos clic derecho al archivo desde el explorador de proyectos, y seleccionamos "Run in command line". Esto debería mostrar algo similar a esto en el panel inferior de Output del NB.







xdebug



Necesitamos descargar el xdebug. Es una herramienta de depuración para PHP, y NB está preparado para usarlo.



Buscamos la versión adecuada para nuestro PHP. En mi caso, como el PHP que estoy usando es la 5.2.5, debería usar la versión PHP 5.2.1 - 5.2.6.



Guardamos el archivo en la subcarpeta "ext" de PHP. Puede estar en cualquier lado, pero esta es la mejor ubicación para ello.



Ahora editaremos el archivo php.ini y agregaremos las siguientes líneas al final



zend_extension_ts="C:/opt/php-5.2.5-Win32/ext/php_xdebug-2.0.3-5.2.5.dll"

xdebug.remote_enable=1





Notar cómo se está indicando la ruta del archivo .dll. No son con backslash ("\") sino con slash ("/"). Guardamos el archivo php. ini y listo.



Reiniciamos el ApacheServer para que recargue la configuración del PHP.



Depurando aplicaciones PHP



No es cosa del otro mundo hacer esto. NB soporta breakpoints, depuración de variables, etc.