Primeras impresiones de Symfony2
El 28 de Julio salía por fín a la luz Symfony2, la nueva versión del popular framework de desarrollo web de Fabien Potencier escrito en PHP. Después de 5 versiones beta y 6 Release Candidate ha llegado a la versión final.
Por motivos profesionales he tenido el placer – o la desgracia – de poder “jugar” con este framework en los últimos meses y voy a publicar una serie de artículos relacionados con este framework. La experiencia ha sido bastante grata, aunque como relato al final, la documentación oficial deberá mejorar mucho en los próximos meses.
¿Qué necesito para desarrollar en Symfony2?
Existen dos tipos de requisitos para poder desarrollar en Symfony2, los obligatorios y los opcionales y, aunque los segundos puedan parecer secundarios, yo diría que es casi elemental cumplirlos para no tener mayores quebraderos de cabeza más adelante que acaben en bonitas horas de desarrollo perdidas.
Así pues, los requisitos obligatorios son:
- Servidor web instalado (personalmente recomiendo Apache2).
- PHP >= 5.3.2
- Tener configurada la directriz date.timezone en el fichero de configuración PHP.ini
Los requisitos opcionales – pero recordemos, más que recomendados – son:
- Tener el módulo PHP-XML instalado
- Tener al menos la versión 2.6.21 de libxml
- Tener activado el tokenizador de PHP
- Tener activadas las funciones mbstring
- Tener activado iconv
- Tener activado POSIX
- Tener instalada la librería PHP-intl
- Tener instalado PHP-APC u otra librería de cacheado
- PHP.ini configurado con las siguientes directrices:
short_open_tags: off
magic_quotes_gpc: off
register_globals: off
session.autostart: off
Nota.- Información extraída de Symfony.com.
¿Qué trae de nuevo Symfony2?
Entre otras ventajas destacaría sobre todo la independencia de módulos que han creado. El propio nucleo del framework está dividido en módulos que tienen una alta cohesión, lo que permite la reutilización de los mismos fuera de un proyecto basado en Symfony2. Esto nos permite hacer cualquier desarrollo web utilizando dichos módulos – o Bundles como se llaman en Symfony2 – sin tener por qué usar el framework por completo.
Además, el gran esfuerzo que han hecho en la seguridad per se del propio framework – utilizando técnicas para evitar SQL inyections, XSS e incluso CSRF – así como la integración de PHP-Unit para la realización de pruebas unitarias o el uso de las últimas ventajas del futuro PHP6 como pueden ser los namespaces, abren un gran abanico de posibilidades para el desarrollador web.
¿Cómo instalo Symfony2?
Este es el punto fácil. Existen dos versiones de Symfony2: la versión estándar y la versión estándar sin los vendors. Los vendors son los programas de ayuda del framework, como pueden ser Git, Doctrine…
Personalmente recomiendo instalar Git con tu gestor de paquetes preferido para poder mantenerlo actualizado en el resto de desarrollos, e instalar la versión estándar sin los vendors.
Una vez descargado el paquete simplemente hay que extraerlo dentro del directorio web que se tenga configurado en el servidor – o extraerlo en cualquier sitio y configurar el servidor web para que interprete dicha ruta como suya – e instalar dichos vendors.
Para ello ejecutaremos el siguiente comando:
cd Symfony/ # Entramos en el directorio donde hayamos extraído Symfony
php bin/vendors install
Esto instalará los paquetes necesarios dentro del directorio Symfony/vendors.
Una vez terminada la instalación podemos entrar en la dirección http://localhost/Symfony/web/config.php para comprobar que todo se ha instalado correctamente. Si es así, debería aparecer una página de configuración en la que se configurará la base de datos y un token secreto para aumentar la seguridad del framework.
Una vez completados estos pasos, podremos ir a la dirección http://localhost/Symfony/app_dev.php, donde nos debería salir la siguiente pantalla si hemos realizado todo correctamente.

Y con esto ya tendremos Symfony2 instalado. Si existe algún problema lo mejor es visitar a la fuente original del contenido http://symfony.com/doc/current/book/installation.html donde se detallan mucho mejor los pasos de instalación.
¿Qué le falta a Symfony2?
Aunque tiene una gran comunidad de desarrolladores la documentación deja mucho que desear. Es un framework recién salido y es algo que mejorará con el tiempo, pero si quieres hacer un uso avanzado del framework te llevará muchas horas de investigación para saber cómo realizar ciertas cosas y, desgraciadamente, muchos de los ejemplos están incompletos o no funcionan como se espera.
Por este último punto no recomiendo todavía la utilización en un gran sistema de producción de Symfony2 salvo que se esté dispuesto a perder bastante tiempo investigando o se tenga un conocimiento avanzado de programación en PHP y/o en Symfony.
El framework es enorme y permite una gran flexibilidad a la hora de desarrollar aplicaciones web en PHP. A pesar de los fallos en la documentación, acabará siendo un referente en el desarrollo de este tipo de aplicaciones.
En la próxima entrega hablaré sobre el sistema de autenticación de usuarios que, aunque parece simple de configurar, puede darnos algún que otro susto.
Tweets
- No public Twitter messages.
Nube de etiquetas






