Link Search Menu Expand Document

5.1. ¿Qué es un framework?

Un framework es un conjunto estandarizado de prácticas de programación para resolver una serie de problemas habituales.

El framework proporciona una serie de clases, librerías y otros componentes para facilitar el desarrollo ágil, seguro y escalable de nuevas aplicaciones.

Por lo tanto, un framework MVC PHP es un conjunto de clases, librerías y otros componentes destinados a servir de base para desarrollar aplicaciones en PHP con arquitectura MVC. La idea es esta: no inventar la rueda cada vez que la necesitamos.

5.1.1. ¿Realmente necesito un framework para desarrollar una aplicación web?

No, los frameworks nunca son imprescindibles…

pero casi siempre son muy convenientes.

Hay programadores pro-frameworks y anti-frameworks. Los programadores anti-frameworks acaban desarrollando, aposta o sin querer, su propio framework después de llevar varias aplicaciones MVC a sus espaldas.

Para decidir si necesitas un framework o no, tienes que conocer antes cómo funcionan y qué ventajas e inconvenientes presentan.

Usar un framework tiene ciertas ventajas, como:

  • Reutilización del trabajo ya hecho (recuerda: no reinventar la rueda).
  • Extensa documentación.
  • Separación en capas.
  • Seguimiento de buenas prácticas de programación.
  • Escalabilidad y mantenimiento.
  • Desarrollo más rápido y, por tanto, más económico.

Pero también tiene algunos inconvenientes:

  • A veces pueden limitar el desarrollo.
  • Curva de aprendizaje costosa (más en unos frameworks que en otros). Es decir: al principio iremos más lentos que sin framework, hasta que le cojamos el tranquillo.
  • Puede llegar a implicar más trabajo, dependiendo del proyecto.
  • Preferencias personales: algunos programadores solo se sienten cómodos si todo el código es suyo.
  • Actualizaciones frecuentes e imprevistas. A menudo, la actualización de un framework hace que parte de tu aplicación deje de funcionar.
  • Ocultan gran parte del funcionamiento de la aplicación: no son aptos para aprender a programar.

En resumen: la idea es que, al usar un framework, solo te centras en desarrollar lo importante. El resto (lo que ya estaba desarrollado en el framework y que es común a muchas aplicaciones web) no te quita tiempo.

5.1.2. ¿Qué framework escoger?

Existen multitud de frameworks MVC PHP. Estos son algunos de gran implantación en la actualidad:

  • Symfony: el más extendido desde hace años.
  • Laravel: el que tiene un crecimiento más rápido.
  • CodeIgniter: el más sencillo, aunque su implantación en la industria el menor.
  • Otros framworks MVC PHP importantes son Zend Framework, Yii y CakePHP.

Lamentablemente, no hay respuesta a la pregunta: ¿qué framework es mejor?

Puedes pasar el resto de tu vida leyendo en foros y en blogs, descargando e instalando varios frameworks para desecharlos a los dos días, esperando a que salga una nueva versión o un framework nuevo…

Nunca podrás responder a esa pregunta. Como mucho, podrás responder a esta otra: ¿qué framework prefiero? Y eso solo después de haber probado varios durante algún tiempo.

Además, el framework por sí sólo puede no ser suficiente para un desarrollo completo, y probablemente harán falta otros componentes que afectarán a la experiencia de programación. Algunos ejemplos son:

  • Librerías del lado del servidor: pear, pChart, doctrine…
  • Librerías del lado del cliente: jQuery, Vue.js, Angular, React, bootstrap…