Instalar y Configurar XDebug en entornos con Eclipse y Ubuntu

Para poder disponer de un entorno correctamente configurado con XDebug en un entorno de desarrollo basado Ubuntu[*] y Eclipse, se deben realizar una serie de pasos que se describen a continuación

[*]en principio las instrucciones han sido probadas con Ubuntu, pero deberían valer para cualquier distribución basada en Debian

Instalación de Xdebug

Requiere la instalación del paquete pear, para lo cual hay que instalar (en caso de no tenerlo instalado previamente) el paquete especifico:

sudo apt-get install php5-dev php-pear

 

Y a continuación se instala el paquete xdebug desde pear:

sudo pecl install xdebug

Con lo cual tendríamos instalado correctamente Xdebug en nuestra máquina

Configuración de Xdebug en Ubuntu

Una vez instalado, necesitamos configurar  Xdebug para poder trabajar correctamente con el.
Lo primero que hay que haces es buscar donde tenemos la instalación:

find / -name 'xdebug.so' 2> /dev/null

con lo que devuelva, modificamos el php.ini (/etc/php5/apache2), añadiendolo como extension

zend_extension=/ruta/directorio/xdebug.so

Reiniamos el apache

sudo /etc/init.d/apache2 restart

Configuración de Eclipse para trabajar con XDebug

Hay que realizar una serie de pasos para configurar el entorno para depurar correctamente con XDebug

  • Crear ejecutable:
  • Window > Preferences > PHP > PHP Executables > Add y definimos nombre, ruta al ejecutable de inicio (var/www/nombreProyecto/public/index.php) y nombre debugger (xdebug)

  • Definir Debugger:
  • Window > Preferences > PHP > Debug y definimos Xdebug, en como PHP Debugger, en Server dejamos el Default y como PHP Executable el anteriormente definido.

  • Elegir Navegador para ejecución:
  • Window > Preferences > General > Web Browser y buscamos y seleccionamos Firefox o cualquier navegador que tengamos por defecto.

  • Definir el server por defecto:
  • Window > Preferences > PHP > PHP Servers > New y añadimos la configuración del server para que apunte a nuestra aplicación tal y como la tengamos definida (cambiando la url por aquella a la que apunte nuestro server)

  • Crear configuración de lanzamiento:
  • Debug > Debug Configuration > PHP Web Page y le damos nombre, seleccionamos Xdebug como Debugger y seleccionamos la página a lanzar de inicio desde el apartado url de la configuración.

     

Una vez realizado todo el proceso, lanzando el depurador y poniendo puntos de ruptura en nuestro código deberiamos poder depurar sin problemas.

Usando Zend framework en Eclipse

Desde que cambié de trabajo he estado trabajando en un proyecto realizado en PHP usando Zend Framework y aunque yo siempre he estado acostumbrado a Eclipse (tanto en Java como en PHP), en la empresa se trabajaba con NetBeans y he estado intentando adaptarme a este IDE, a su forma de uso.

Después de bastante tiempo usándolo, sigo sin cogerle el gusto a NetBeans, así que me propuse conseguir integrar Zend Framework en eclipse y aunque no he conseguido tener una utilidad como la de crear proyectos y componentes que tiene NetBeans, por lo menos he conseguido tener el autocompletado y para todo lo demás uso la linea de comandos.

Los pasos para conseguirlos son sencillos y se basan en importar la librería de Zend Framework en el eclipse y en el proyecto concreto, de la siguiente manera (suponiendo que ya tenemos Zend framerwork descargado):

  • Incluir el directorio de Zend como librería en el eclipse: para ello, pulsamos sobre Window > Preferences > PHP > PHP Libraries y ahí pulsamos en New… nombramos la librería como queramos y Ok, a continuación nos colocamos sobre el nuevo elemento creado y pulsamos sobre Add External folder… y ahí seleccionamos el directorio en el que tengamos Zend Framework descargado y descomprimido.
  • Incluir la librería de Zend en el proyecto: para ello, nos colocamos sobre el proyecto concreto en la vista de Navigator o Package Explorer y ahí botón derecho > properties > PHP Include Path y ahí pulsamos sobre Add Library > User Library y elegimos la anteriormente incluida en el eclipse y Ok.

Y ya está, se tirará un rato hasta que funciona rápido y bien, pero al cabo de un rato tendremos Zend Framework como librería y podremos usar el autocompletado de clases y métodos, lo que nos será muy útil para realizar nuestros proyectos.

Me he tirado algo de tiempo para encontrar la solución, pero principalmente está sacado (como no) de una entrada en stackoverflow.