Primeras impresiones con Symfony2
Después de varias semanas trabajando con Symfony2 creo que va siendo hora de empezar a hablar un poco sobre el tema y compartir impresiones. He estado dos años trabajando con las versiones 1 de Symfony y ahora me he visto ‘obligado’ a plantearme un cambio porque Symfony 1 digamos que… muere. El cambio de versiones del framework ha sido brutal y sin ningún tipo de retrocompatibilidad, un cambio a mejor sí, pero dejándonos un poco en bragas a los desarrolladores.
Teniendo esto en cuenta me tengo que plantear un cambio, lo que tengo clarísimo es que con Symfony 1 no puedo seguir y como entiendo que el cambio más natural en un principio es Symfony2 he empezado con ello. No quiero decir que no me vaya a plantear otras posibilidades, por supuesto que sí, pero creo que es un buen punto para empezar, así que con ello estoy. Este cambio de framework va a necesitar en mi caso un esfuerzo extra porque a la vez me planteo el cambio casi seguro de Propel a Doctrine2 y de SVN a Git.
Creo que puedo resumir estas semanas en puntos que creo positivos y los que veo negativos:
- ↑ Estructura y flexibilidad. Me gusta mucho como viene estructurado, y el hecho de que incluso el core del framework sea considerado como cualquier otra librería externa de tu aplicación y a su vez esté separado en librerías independientes que puedes usar fuera de Symfony. Además, todo (y todo es todo) es personalizable en Symfony2 (a los plugins/widgets/módulos que permiten modificarlo ahora les llaman bundles), aunque por el momento muchas veces lo difícil es saber cómo.
- ↑ Modelo-Vista-Controlador. Ya en la versión 1 la separación era muy clara, pero creo que con Symfony2 y Doctrine esto se ha visto reforzada y me gusta. Otro punto a favor creo que es el nuevo sistema de plantillas que se propone con Symfony2 llamado Twig, que os recordará mucho a Smarty si alguna vez trabajásteis con él.
- ↑ Formularios. Creo que el nuevo sistema de formularios es más sencillo (uso) y a la vez más completo que el anterior. Uniéndolo con el ya mencionado sistema de plantillas Twig una bomba.
- ↑ ¿Rendimiento? Lo pongo con interrogantes porque la verdad es que aunque he oído maravillas aún no he tenido la posibilidad de probarlo en producción y no voy a asegurar lo que no he visto (¡un excéptico de pura cepa como yo!), pero la verdad es que visto lo visto creo que puede ser bastante cierto.
- ↓ Documentación. Sé que aún no ha salido la versión final estable, sé que es un framework que ‘acaba de empezar’, sé que cuesta mucho documentar totalmente un proyecto de esta envergadura, pero me fastidia un montón estar convencidísimo de que algo se puede hacer y no encontrar como hacerlo. Estoy seguro de que con el tiempo esto cambiará, pero por el momento creo que es un gran problema sobre todo si eliges un framework de este tipo para agilizar tus desarrollos.
- ↓ Requisitos y gigantismo. Creo que Symfony2 no es un framework para cualquiera, no lo veo como solución a proyectos pequeños, webs informativas de pymes o blogs por ejemplo. Además para su correcto funcionamiento en producción son necesarios ciertos requisitos que no puedes encontrar en todos los hostings, sobre todo si tienes algo compartido. Para empezar PHP 5.3 es totalmente necesario, entre otras cosas por el obligatorio uso de los namespaces. De todos modos los creadores de Symfony2 ya lo han tenido en cuenta y han creado Silex un microframework basado en Symfony para proyectos más pequeños que estoy deseando probar.
- ↓ Autogeneradores. Cuando no has probado el chocolate no sabes si te gusta, pero como te guste luego no puedes dejar de comerlo, y si no tienes pues lo hechas en falta. Esto es lo que me ha pasado con los administradores autogenerados de Symfony 1 que tanto trabajo me han ahorrado, y ahora que Symfony2 no los trae pues me parece una gran falta. El generador de CRUD con Doctrine2 puede ser un sustitutivo en parte, pero no es lo mismo.
Creo que esas pueden ser las conclusiones más importantes que he sacado estos primeros días. En una visión general y teniendo en cuenta que en Symfony2 aún quedan muchas cosas por hacer, creo voy a decir que en principio me gusta. Si os interesa el tema os dejo unos enlaces sobre el tema:
- Symfony2. Página oficial del framework.
- symfony.es. Página y comunidad de Symfony en español creada por Javier Eguiluz, alguien a quien merece la pena escuchar con atención.
- Ponencias de deSymfony2011. Vídeos y presentaciones de las jornadas deSymfony de este año. Aún no están colgados, pero está previsto que se vayan poniendo durante esta semana.
- Fabien Potencier. Creador del framework.
- Gente que sabe de esto: Javier Eguiluz, Asier Marqués, Albert Jessurum, Nacho Martín, Jon Segador
Sea o no mi decisión final quedarme con Symfony2 como alternativa a Symfony1 en los proyectos que ya he desarrollado, o los que vengan más adelante, estoy seguro de que no dejaré de investigar y probar cosas con él, así que seguro que seguiréis leyendo más cosas en Berriart referentes a este framework y ya sobre temas o usos más concretos.
Tags:
Hola Alberto.
Felicidades por tu artículo. Es la primera vez que te dejo un comentario pero no es la primera que me dejo caer por tu blog.
Escribes de manera clara y concisa, y además se huele a la legua que sabes de lo que hablas.
Esta vez me dejas con los dientes largos, a pesar de sus defectos, quiero Symfony 2 para mis proyectos ya!
#1 - Publicado hace 7 meses y 2 semanas por IñakiEstoy de acuerdo en todos los puntos, tan de acuerdo estoy, que por el ultimo punto he decidido no quedarme con symfony 2, gracias a los Autogeneradores y a Propel, todo lo demas es perfecto, pero la ausencia de estas dos herramientas, me estan haciendo pensar en seguir con symfony 1.4 hasta donde se pueda, y luego probar cake.
#2 - Publicado hace 5 meses y 2 semanas por DiegoSymfony se vio obligado a cambiar su arquitectura como Zend Framework “use-at-will”. veamos si es tan sencillas sus librerias de usar por separado.
saludos.
#3 - Publicado hace 3 meses y 3 semanas por Pedro Giacometto