¿Qué framework deberías elegir para tu próximo proyecto?

Últimamente se están publicando muchos artículos explicando por qué deberías elegir un framework PHP u otro. Todo empezó con Fabien Potencier, creador de Symfony, y su artículo Why Symfony? al que siguieron las réplicas Why CakePHP? y Why Zend?.

En mi opinión, el mejor framework siempre es el más adecuado a tu caso. Esto significa que no sólo deberías elegir el framework que (intuyes que) mejor se adapta a tu proyecto, sino el que más se adapte a tí o a tus programadores. Si eres por ejemplo un experto en Zend Framework, seria una locura elegir Symfony2 para tu próximo gran proyecto. Desarrolla siempre tus proyectos importantes con lo que dominas y mientras tanto, aprende otros frameworks mediante aplicaciones de ejemplo y pequeñas pruebas.

En cualquier caso, y por si alguien lo considera útil para tomar su decisión, aquí va mi opinión sobre lo mejor y lo peor de Symfony2 (no he querido incidir en temas técnicos, porque de eso ya se ha hablado mucho):

Lo mejor de Symfony2 (y el proyecto Symfony)

  • Comunidad: tiene la comunidad de usuarios activos más grande de todos los frameworks. Centenares de personas en todo el mundo ayudan a programar el framework (aquí tienes la lista completa).
  • Documentación: su documentación es muy extensa, en general buena y se actualiza con mucha frecuencia.
  • Innovación: Symfony2 ha sido el primer framework PHP en popularizar conceptos importantes como la inyección de dependencias.
  • Bundles: Symfony2 ya cuenta con unos 2.000 bundles (un concepto similar a los plugins de otras aplicaciones). Muchos son una basura, pero a cambio existen otros que son auténticas joyas.
  • Ecosistema: los mejores proyectos de PHP están creados por programadores que orbitan alrededor del proyecto Symfony y su ecosistema (Composer, Doctrine, Propel, Capifony, Assetic, Twig, Imagine, Behat, Monolog, ...)
  • Profesional: es serio, pero no aburre. Programar aplicaciones Symfony2 es suficientemente serio para utilizarlo en el ámbito profesional, pero no lo bastante como para convertir tu vida de programador en un infierno de aburrimiento.
  • Seguridad: les importa realmente la seguridad. Les importa tanto que incluso han pagado una cara auditoría del código llevada a cabo por una empresa experta en seguridad.
  • Fabien, el creador de Symfony, un genio inigualable.

Lo peor de Symfony2

  • Admin generator: no tiene un admin generator tan bueno como el de Symfony 1. Así que con Symfony2, hacer el backend de las aplicaciones te cuesta mucho más tiempo y te queda mucho peor.
  • Internacionalización: creo que la parte i18n de Symfony2 está incompleta. Puedes crear aplicaciones en varios idiomas con facilidad, pero luego te encuentras con grandes barreras para cosas sencillas: no puedes traducir las rutas (hay varios bundles para ello) y tampoco puedes traducir cosas tan sencillas como las fechas (debes instalar y configurar una extensión de Twig).
  • No es MVC: eliminar del núcleo de Symfony2 la parte del modelo es una decisión completamente lógica y muy inteligente desde el punto de vista técnico. El problema es que en el mundo real existen pocas aplicaciones que no utilicen bases de datos (me refiero a aplicaciones web pequeñas y medianas). Así que dejar que los bundles de Doctrine y Propel los desarrollen otros, crea fricciones que no existían en la versión anterior del framework. Un ejemplo sería la creación de aplicaciones internacionalizadas que guarden sus contenidos en la base de datos. ¿Quieres traducir los contenidos a muchos idiomas y servir automáticamente el contenido adecuado a cada usuario? ¡Buena suerte!
  • Marketplace: existen multitud de empresas y miles de programadores que ganan dinero gracias a Symfony2, pero no tengo la sensación de que se haya creado un gran negocio alrededor del proyecto Symfony. Si observas el ecosistema empresarial montado sobre WordPress, Joomla! o Drupal, te das cuenta que falta todavía mucho por hacer.

Esta es mi opinión sobre lo bueno y lo malo de Symfony2, pero me gustaría leer vuestras opiniones, sobre todo aquellas que estén basadas en la experiencia de haber programado aplicaciones Symfony.

Comentarios

  1. Incluso mezclar :)

    Yo en un pequeño proyecto sobre symfony 1.4, necesitaba autenticar en LDAP y utilice la clase Zend_Ldap (ZF 1.10) :D

    Lo bueno es que en PHP es que haya componentes de calidad, que luego podamos utilizar en nuestras aplicaciones (y rematar usando composer para administrarlos)

    Un saludo

    Isidro

    Isidro Merayo Castellano el 10 de septiembre de 2012, 17:17:57

  2. Más cosas buenas para el desarrollador español:

    • blogs como este. De Zend no encontrado lo mismo
    • desymfony. De Zend no hay nada de esto

    En tema montar negocio está claro que no puede competir un framework con un producto terminado personalizable como Drupal. El dinero está precisamente en esa personalización.

    Cuando proyectos importantes vayan usando Symfony más necesidad de expertos en la materia harán falta. Pero esto solo para proyectos medios-grandes.

    Antonio Garcia Marin el 12 de septiembre de 2012, 14:29:48

  3. lo mismo de Antonio... este blog y los libros y la comunidad

    Roberto German Puentes Diaz el 13 de septiembre de 2012, 0:57:37

  4. Yo personalmente en PHP solo he usado Symfony 5 proyectos con 1.4 y 7 con 2.0, (no he usado 2.1), pero la verdad esto no hay quien te lo indique, la verdad todo depende de que vayas a hacer si requiere integración con alguna aplicación o algo previamente hecho (no necesariamente por ti).

    No creo que exista post alguno que te indique qué usar. Además para proyectos grandes creo que la solución muchas veces es una solución propia juntando partes, por ejemplo hice un proyecto con Symfony 1.4, Lucene en Java y hasta el RabbiqMQ se uso allí y ese está hecho en Erlang.

    Pienso que lo importante es mirar qué se necesita y qué herramientas existen para completarlo, además analizar a ver si te sirve

    Julian Reyes escrigas el 14 de septiembre de 2012, 8:41:17

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

10 de septiembre de 2012

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.