Un entorno de desarrollo para PHP

Desde que aprendí mi primer lenguaje de programación (BASIC para SPECTRUM), la forma de programar ha evolucionado de forma radical. De los primeros programas escritos en un editor de líneas en el SPECTRUM, pasando por diversos editores (vim, emacs, notepad, ultraedit…) hasta los más completos IDE como Borland (Turbo y Builder) o Visual Studio.

En los últimos tiempos, sobre todo con el auge de la web, PHP se ha transformado en uno de mis lenguajes más usados. Su potencia ha hecho que no sólo me sirva para implementar páginas web sino pequeños scripts para consola reemplazando a bash o perl.

En los primeros tiempos, los programas en PHP eran muy sencillos y bastaba con cualquier editor. Poco a poco los programas crecían y se hacía más costoso de mantener. La inclusión de frameworks MVC son la gota que colma el vaso haciendo imposible su gestión con un editor sencillo.

Por extraño que parezca PHP carece de un IDE propio que simplifique la programación. Así que tras buscar, escuchar consejos, probar y experimentar llegué a un entorno potente y flexible para programar en PHP, incluso en máquinas remotas.


IDE para PHP

Eclipse es un IDE de desarrollo implementado y orientado a la programación en Java. Originalmente, su desarrollo fue realizado por IBM quien pronto cedió el testigo a la Eclipse Foundation.

Eclipse realmente es un motor sobre el que se pueden integrar múltiples añadidos para conformar el IDE adecuado. Aprovechando esta funcionalidad, es posible crear un IDE para PHP si se le añaden tres elementos básicos:

Soporte para el lenguaje PHP
El proyecto PDT (PHP Development Tools) implementa el soporte para PHP. Este soporte incluye sintaxis, autocompletado de funciones/métodos, gestión de bibliotecas externas (Frameworks)…
Acceso a repositorios Subversion
Cuando un proyecto crece es necesario utilizar sistemas de control de versiones para su gestión. Eclipse tiene integrado soporte para CVS pero no así para Subversion. Para ello existen dos plugins con la misma misión: subversibe y subclipse.

El primero de ellos (subversibe) está integrado con Eclipse Ganymede. Sin embargo, es necesario incluir dependencias externas para su correcto funcionamiento y no soporta las mejoras de la última versión de subversión (1.5) por lo que es más aconsejable utilizar subclipse que está más integrado con el desarrollo de Subversion.

Sincronización de ficheros con SSH
En un primer momento no parece que sea necesario añadir soporte de SSH a Eclipse. Sin embargo, en el desarrollo de aplicaciones con PHP es habitual subir el código a un servidor de pruebas. Añadir esta funcionalidad al IDE incrementa sustancialmente la productividad y simplifica las labores de depuración.

Instalación paso a paso

Evidentemente, el primer paso es instalar Eclipse y el Java Runtime Environment para poder ejecutarla.

La última versión estable, en el momento de escribir este artículo, es Ganymede. Ganymede se distribuye con paquete preconfigurados para múltiples lenguajes pero no existe uno “oficial” para PHP (aunque el proyecto PDT distribuye un paquete especial). Por ello, descargaremos la versión adecuada para nuestro sistema de otro lenguaje (por ejemplo, el de lenguaje C/C++ que es el más ligero de todos), lo descomprimiremos y ejecutaremos el programa Eclipse incluido.

Tras crear el espacio de trabajo, el siguiente paso es instalar los plugins necesarios. Para ello se accede al menú Help / Software Updates / Available Software y se añaden los repositorios:

Seguidamente, se deben seleccionar los paquetes:

  • PDT Runtime Feature
  • SFTP Plug-in
  • Subclipse
  • Subclipse Integration for Mylyn
  • Subversion Navive Library Adapter (JavaHL)

Opcionalmente, se puede instalar el paquete Subversion Revision Graph.

Tras reiniciar el entorno, se puede activar el IDE para PHP en Window > Open Perspective.

Un par de opciones de configuración

A partir de este momento todo es cuestión de gustos pero existen un par de consejos básicos:

  • Configurar adecuadamente las ventanas simplifica y ayuda al desarrollo. En Window > Show View se pueden añadir nuevas ventanas para acoplar. Suelen ser útiles añadir las tareas de mylyn y la sincronización (Team Synchronize)
  • Para utilizar la sincronización con SSH, primero es necesario importar o exportar el proyecto utilizando SFTP (Other). Tras importar o exportar, se le indica sincronizar y automáticamente detectará los cambios que haya que subir o bajar del servidor

5 comments

  1. David · febrero 2, 2009

    Oskitar!! Me mola el post!! Alomejor hasta te hago caso y me instalo alguna de esas cosas para probar😉

    Cuidate!!!

  2. Alex · septiembre 25, 2009

    Oscar!! Aquí un ex-becario del DATSI volviendo a leerte después de años…

    Comentarte que como framework para PHP, últimamente estoy usando Symfony. Es bastante potentillo, te permite abstraerte de cientos de detalles que dificultad la creación de una web, y que uno se centre en el diseño y la lógica. No sé si lo conocerás o si lo pensarías comentar más adelante otros frameworks como éste, pero bueno. Aquí lo dejo dicho.

    Un saludo!

    • Oscar · septiembre 25, 2009

      Tiempo hace ya… y casualmente ayer resurgían ante mi los datos de tu PFC😉

      Los primeros framework que utilicé fueron CakePHP y Symfony. En aquel momento me parecieron monstruos demasiado complejos de controlar (la aplicación era sencilla) así que los dejé un poco apartados hasta que salió el primer ZF que era bastante más sencillo de poner en marcha (cosas del tutorial para torpes que localicé) y fue el elegido desde entonces. Además, algunos añadidos/clase propios me hacen reacio a cambiarlo… aunque nunca viene mal conocer otras alternativas.

      No lo había pensado pero me ha gustado la idea. Cuando tenga algo de tiempo, y haga algunas pruebas para hablar con conocimiento de causa, podría ser interesante crear una serie comentando los distintos frameworks ¿Te animas?

      • Alex · octubre 2, 2009

        jeje, mi PFC?? no te referiras a ese que era EL proyecto fin de carrera… xDD Los viejos recuerdos siempre acaban aflorando…

        Ahora mismo estoy haciendo un blog algo más “personalizado” para mi hermana, con Symfony. Al ser una aplicación de amplio uso y que al mismo tiempo potencialmente toca todo lo que podría estar relacionado con una web (motores de búsqueda, inserciones en base de datos, formularios, blablabla) estoy aprendiendo bastante (debo admitir que estaba algo oxidadillo… :s)

        Lo que podrían intentar es ese mismo trabajo -o similar- con otro framework y comprobar cual resulta más sencillo de usar. Sé de la existencia de CakePHP y Zend Framework, pero no he usado ninguno de ellos…

        El salvaje mundo de la consultoría no deja demasiado tiempo libre, a decir verdad xDD

        • Oscar · octubre 2, 2009

          Si, ése. Justamente me lo había mandado Santi para un proyecto nuevo que vamos a empezar.

          No hay bastante con todos los gestores que existen en el mercado que te inventas uno nuevo… cuando lo tengas dímelo para echarle un ojillo😉

          Por cierto, a ver si un día de estos te escapas de la consultoría y nos haces una visita.

Los comentarios están cerrados.