¿Qué framework de PHP debemos elegir?

Si has llegado hasta esta entrada del blog probablemente te estés haciendo esta pregunta. Con el auge de PHP 5, y en especial de la versión 5.2 están apareciendo cada vez más y más frameworks y es complicado tomar una decisión a la hora de afrontar nuestros proyectos.

La verdad es que responder a esto es similar a recomendarle a un amigo qué marca de coche comprar. Como casi siempre, todo depende de las necesidades, posibilidades y conocimientos que tenga uno.

Lo primero a tener en cuenta es diferenciar lo que es un framework de lo que son plataformas de CMS.

En este segundo grupo podemos encontrar productos como WordPress (usado en este blog), Drupal, Joomla, etc. Aunque han avanzado mucho y es relativamente sencillo extenderlos y adaptarlos a nuestras necesidades, para mí no son frameworks como tal. Son plataformas de gestión de contenidos, customizables hasta cierto punto y que según lo que queramos hacer es bastante complejo de meterles mano.

Sin embargo, para muchísimas páginas con relativa poca actualización o que no quieren nada muy específico pueden cubrir perfectamente nuestras necesidades y las de nuestro cliente. Por ejemplo, con WordPress pueden montarse tiendas online sin demasiados conocimientos técnicos y eso es algo que si tenemos que programarlo desde 0 puede ser complejo.

Hecha esta puntualización, vamos a entrar en el tema de los frameworks.

Mucha gente, algunos de ellos grandes desarrolladores de PHP, siguen defiendo la idea de “Yo tengo mi propio framework”. Esto está bien y todos hemos pasado por ello, el problema es que cuesta mucho estar al día, tenerlo todo actualizado y la verdad es que en realidad, con esto estamos intentando reinventar la rueda.

Como punto positivo, decir que en este caso tenemos el 100% del control de la aplicación y que seguramente el código está optimizado al máximo. Como gran handicap, la cantidad de bugs y problemas de seguridad que se generan y sobretodo que a veces es difícil aplicar las técnicas más modernas.

El caso es que finalmente, tarde o temprano, la mayoría nos damos cuenta de que elegir un framework para nuestras aplicaciones es casi una necesidad si queremos estar al día y desarrollar de forma ágil. Lo malo es que muchas veces hay una curva de aprendizaje relativamente alta y casi es aprender otro lenguaje de programación.

En PHP existen muchísimos frameworks aunque para mí los 4 que deberíamos considerar son los siguientes:

  • Zend Framework
  • Symfony
  • CodeIgniter
  • Kohana

Zend Framework
Probablemente el framework PHP con mayor presencia en el mundo empresarial. Framework robusto, potente, modular y sobretodo muy fácil de acoplar / desacoplar módulos. Podemos usar por ejemplo las clases para Mail, DB, etc… y obviar el resto. Además, es el único framework con una certificación oficial. Como punto negativo, el framework tiene una curva de aprendizaje relativamente alta y su instalación no es trivial.

Symfony
Un framework que gusta mucho a desarrolladores experimentados y en especial a la gente que viene de Ruby on Rails y otros lenguajes MVC. Es un framework muy potente y que si sabemos usar todas sus opciones de configuración con archivos YAML prácticamente no hay que codificar nada. El problema es su curva de aprendizaje y sobretodo lo difícil que es desacoplar la mayoría de sus módulos. Esto hace que en algunas instalaciones nos podamos quedar sin memoria en nuestros scripts y es complicado de instalar en hostings compartidos.

CodeIgniter
Sí, ya sé que no es estricto PHP5 y que está descontinuado, pero sigue siendo usado en multitud de proyectos y empresas. Es quizás el framework PHP más documentado y con más ejemplos reales y si nunca hemos trabajado al estilo MVC probablemente sea la mejor opción. Framework ligero y muy fácil de instalar en hostings compartidos.

Kohana
El desconocido de mi elección personal. Realmente este framework empezó siendo un fork de CodeIgniter pero ha cogido entidad propia y su versión 3 es 100% PHP5.2 compliant. Framework muy potente, extremadamente ligero para todo lo que hace y sencillo de instalar. Su único handicap es su falta de documentación ya que muchas veces hay que mirar dentro del código para ver qué hace exactamente una función.

Como podéis ver, todas las opciones son válidas y tienen puntos a favor y en contra.

Para terminar esta disertación, os recomiendo que si os queréis dedicar a esto de forma mínimamente profesional invirtáis algo de tiempo en decidir una plataforma y apostar por ella ya que con casi todas se pueden realizar todo tipo de proyectos una vez se dominan. Al principio, puede parecer que vas más lento que con tus funciones de toda la vida, pero al tercer proyecto lo agradecerás.

You may also like...

5 Responses

  1. Sólo tengo que decir una cosa … ¡¡¡AMÉN!!! Qué gran entrada! 😀

  2. Creo que te falto mencionar CakePHP que sin duda es un gran framework. Pero los mencionados son igualmente excelentes.

  3. Ricard Clau says:

    Hola Heriberto, CakePHP no fue incluido en la lista porque hace muchísimo que no se actualiza y probablemente sea de los más lentos (debido justamente a su retrocompatibilidad con PHP4 y no aprovechar las novedades).

    Justo veo que está a punto de salir una versión 2, con lo cual mis palabras dejan de tener validez 😀

    Coincido en que fue un gran framework y aún se usa en muchos desarrollos, debido a su sencillez y abundante documentación.

  4. Wlises R. says:

    Buen aporte, existe otro framework que esta tomando lugar, hablo de Yii muchos apuestan a este sobre muchos !!!

    Aunque se recomienda aprender un framework que garantice su futuro, como lo es el Zend Framework ya que los creadores del propio PHP son quienes los patrocinan… 😀

  5. maseo says:

    Hola, muy buen aporte, en lo personal no uso frameworks, prefiero hacer todo desde cero.