Es primera vez que meteré manos en el framework MVC para PHP de nombre symfony, no entraré en detalles de sus bondades, sólo diré que me aburrí de re-inventar la rueda cada vez y el proyecto en el que trabajaré los próximos meses merece el uso de este framework.
En esta primera entrada detallaré propondré una configuración para el IDE Eclipse que permite alivianar un poco la labor de programar, añadiendo soporte básico para las operaciones (de consola) de symfony y un editor para archivos yml.
Instalación
Conocidas las nociones básicas con las que nos enfrentaremos a lo largo del proceso de desarrollo, comenzaré por configurar nuestro IDE, la idea es no tener que salir tanto del IDE para realizar alguna tarea, para cumplir con esto se requiere un editor de archivos YAML y algún complemento que nos permita ejecutar los comandos de consola que usa symfony. Con esto en mente el IDE que utilizaremos será Eclipse. Por lo que debemos descargar Eclipse y sus plugins de PHP Development Tools (PDT) en su primera versión (la versión 2 no está soportada por el plugin de symfony a utilizar).
Nota importante, me han comentado que el plugin no funciona en la versión 3.5, por ello usaremos la 3.4
Descarga Eclipse Classic: http://www.eclipse.org/downloads/
Descarga PDT v1.05: Runtime o sigue leyendo para ver cómo instalarlo utilizando el repositorio.
Para instalar PDT sólo basta copiar el contenido del archivo descargado en el directorio de Eclipse, respetando claro el árbol de directorios. También puede ser instalado vía repo
Seguiremos complementando Eclipse con algunos plugins, para ello abrimos Eclipse y nos dirigimos a Help/Install New Software (Figura 1). Ahora añadiremos los siguientes repositorios haciendo click en el enlace que dice ‘Available Software Sites’ y luego click en el botón Add.
Repositorios
Estos son los “indespensables”

Figura 1: Instalar Nuevo Software en Eclipse
- Plugins de PDT: provee herramientas para desarrollar aplicaciones en PHP. Repositorio: http://download.eclipse.org/tools/pdt/updates/
- Plugin de symfony: (sin nombre aparentemente) permitirá crear proyectos, aplicaciones y módulos a través de un wizard, gestionar instalaciones de sf para el proyecto en uso, ejecutar comandos sin la necesidad de abrir otra ventana, colorea la sintaxis de archivos yml (pero no tabula correctamente) y es capaz de convertir archivos de Clay en archivos YAML. Repositorio: http://sfdt.borox.ch/updates
Los siguientes son opcionales, pero pueden ayudar en la labor
- Clay Database Modeling – Azzuri: Sencillo editor gráfico para crear tablas y sus relaciones. Repositorio: http://www.azzurri.co.jp/eclipse/plugins
- yEdit YAML Editor: [Recomendado!] Editor muy sencillo que básicamente lo único que hace es interpretar las tabulaciones como “2 espacios” y colorea un poco la sintaxis, justo lo que nececitamos
. Repositorio: http://dadacoalition.org/yedit/ - Wicked Shell: Permite tener acceso a terminal o consola de tu sistema operativo a través de una cómoda pestaña. Repositorio: http://www.wickedshell.net/updatesite
Una vez añadidos estos sitios o repositorios hay que instalar los plugins (que quieras), lo que es bastante sencillo, sólo selecciona el repositorio (work with) y luego se elige lo que necesites instalar, es preferente instalar las últimas versiones de cada plugin.
Una vez terminado el proceso de instalación y reiniciado Eclipse tendremos todo lo necesario para desarrollar nuestro proyecto, más cómodamente en Eclipse.
Pruebas
Para ver si todo está funcionando correctamente creemos un nuevo proyecto de symfony.
File ->New -> Project -> Symfony -> SfProject
En el siguiente paso del wizard nos pedirá un directorio donde haya una instalación de symfony para ser usado como librería. Puedes usar tu instalación de PEAR o un sandbox no hay diferencia. El resto son parámetros propios de cualquier proyecto como nombre y ubicación.
Con esto se crea automáticamente un nuevo proyecto, el resultado es el mismo que utilizando el comando habitual de symfony:
symfony generate:project nombre-proyecto
Con esto ya estamos listos con la configuración, si quieres ver las características que instalamos continua leyendo,
Revisando Características
Revisemos brevemente nuevas funcionalidades que hemos instalado.
Habilidad de crear aplicaciones y módulos:
Dentro del menú nos encontraremos nuevamente con la sub-categoría Symfony desde allí se pueden crear las módulos aplicaciones y módulos necesarios. ¿Lo malo? no soporta parámetros o flags adicionales por lo que presumo que el comando que (presumo) ejecuta es simplemente generate:module y generate:app respectivamente, así que si necesitas agregar más parámetros, tendrás que utilizar la consola. El resto de los pasos no requiere más explicación que ponerle nombre o indicar a qué aplicación corresponde el nuevo módulo.
Abrir archivos y editar archivos .yml
Ahora el editor de Eclipse reconoce los archivos .yml los abré y colorea, pero no formatea correctamente si presionas tab, lo cual en si no es un problema porque el archivo .yml no utiliza tabulaciones sino 2 espacios por cada nivel de anidación. Si te parece molesto igual que a mí, instala el plugin que recomendé más arriba: yEdit YAML Editor éste reconoce las tabulaciones como 2 espacios (o más dependiendo del nivel de anidación). Una vez instalado, tendrás que abrir estos archivos .yml haciendo click derecho sobre él -> open with -> YEdit
Crear el Modelo (en Propel) a través de Clay
Ahora si hacemos click derecho sobre el archivo .clay y el menu contextual aparecerá sub-menú de nombre symfony dentro de él se incluye la opción Convert to Symfony YML-Schema. El archivo que se obtiene, para este ejemplo en particular, es el siguiente.
[Pendiente de Revisión, no lo probé]
..propel:
…._attributes:
……package: lib.model
….usuario:
……id:
……..type: INTEGER
……..required: true
……..primaryKey: true
……nombre:
……..type: VARCHAR
……..size: 50
…. mensajes:
…… id:
…..…type: INTEGER
……..required: true
……..primaryKey: true
……mensaje:
……..type: VARCHAR
……..size: 255
……usuario_id:
……..type: INTEGER
……..required: true
……..foreignTable: usuario
……..foreignReference: id
……..onDelete:
……..onUpdate:
……fecha_publicacion:
……..type: CHAR
……..size: 10
Como se puede apreciar la sintaxis utilizada no se parece mucho a la utilizada en la documentación, por lo que para programadores con poco experiencia en esta notación (como yo) resulta un poco confusa.
Conclusiones
Después de haber pasado algunas horas (o quizás más de las que debí) navegando, recopilando información para tratar de obtener un IDE lo más completo posible con lo mejor de cada componente utilizado, quedo con la sensación de que no añadí algo realmente interesante. En particular lo digo por plugin a medias que sólo provee funcionalidades elementales, que final de cuentas me hará recurrir de todas a formas a la consola. Es más, la escasez de alternativas me hacen afirmar que no es indispensable un entorno de desarrollo más completo o complejo que el que construí.
Lo destacable, el editor de archivos yml: YEdit y el esfuerzo de la comunidad en proveer plugins para facilitar el trabajo. Estoy seguro que las próximas versiones serán más completas y que la incorporación de symfony a NetBeans hará más cómoda esta tarea.
De todo lo propuesto, considero que usando Eclipse + PDT + YEdit es suficiente para tener un entorno de desarrollo para symfony adecuado.
Espero les haya sido de ayuda, saludos!












4 respuestas hasta el momento ↓
Isidro // Julio 28, 2009 a 4:35 pm |
Interesante el plugin que has encontrado…
Sin embargo en Eclipse 3.5 no funciona, lo estoy instalando/probando sobre Eclipse 3.4.
Gracias por la info
Un saludo
Isidro
emartini // Julio 28, 2009 a 5:32 pm |
Que raro, yo tengo la versión 3.5 instalada en mi mac
Eclipse SDK
Version: 3.5.0
Build id: I20090611-1540
(c) Copyright Eclipse contributors and others 2000, 2009. All rights reserved.
Visit http://www.eclipse.org/platform
Isidro // Julio 30, 2009 a 7:53 am
Yo he probado en Linux y Windows, pero nadaa
Eclipse for PHP Developers
Build id: 20090619-0625
Le he reportado al autor los problemas
Nos leemos
Isidro
Osukaru // Septiembre 25, 2009 a 10:08 am |
La última versión de PDT (2.1 en este momento) se supone que es compatible con Eclipse 3.5 (Galileo). No lo he probado aún (estoy en ello) pero podéis echarle un vistazo.