Framework: ¿sí o no?
¿Necesitamos utilizar frameworks en nuestros desarrollos? Y si es así, ¿cuál debemos escoger?
Por Eric Lagarda en Desarrollo.
07 junio 2018
Crear un proyecto web, sea personal o comercial, conlleva muchos desafíos: desde la gestión de páginas, el blog y las importaciones de archivos hasta complejos sistemas de pago. Cuando necesitas que tu web tenga un buscador, se comunique con otro sistema, realice operaciones monetarias o, en otras palabras, se adapte a lo que quieres, ya no valen los típicos CMS. Hay que desarrollar la plataforma a medida.
Habitualmente, nosotros elegimos PHP para desarrollar webs a medida. Hay infinidad de tecnologías web, pero PHP es potente, fácil de instalar en servidores (actualmente, todos los hostings incluyen servicio para PHP), seguro, rápido, estable y, además, lleva detrás una grandísima comunidad de desarrolladores.
Una vez elegido el lenguaje con el que programar, llega lo difícil. ¿Escoger un framework o desarrollar completamente desde cero? Si escojo un framework, ¿cuál será?
La respuesta a la primera pregunta es sencilla. Vale la pena usar un framework. La razón es simple: un framework no es más que una serie de herramientas que, a la hora de desarrollar una aplicación, facilitan centrarse en su lógica y no en tareas más rutinarias, como conectarse a la base de datos, enviar emails, autenticar usuarios, etc. Además, los frameworks tienen documentación y suelen estar muy probados por la comunidad, lo que garantiza seguridad en tu aplicación.
Así que queda claro que usar un framework es totalmente recomendable, sea cual sea el lenguaje a utilizar. Pero:
¿Qué framework debemos utilizar para PHP?
Al ser un lenguaje tan utilizado, existen multitud de frameworks para PHP. Sin embargo, nos podemos centrar en algunos de los más grandes y usados por la comunidad, como son Laravel, Symfony, Yii 2, CodeIgniter o Phalcon. Pódeis ver más frameworks PHP pulsando en este enlace.
Cualquiera de estos frameworks sirve para desarrollar una plataforma web a medida. Sin embargo, Laravel incluye lo mejor de todos ellos:
- Composer: Un gestor de paquetes. Imprescindible para que actualizar tu plataforma sea una sencilla tarea.
- No es un MVC, es mucho más: Laravel no sigue el estandar MVC, sino que está completamente orientado a objetos, por lo que la estructura de la plataforma depende de ti o de la aplicación que estés desarrollando.
- Extensible: Laravel dispone de un sistema de packages. ¿Qué significa esto? Que puedo desarrollar un paquete para, por ejemplo, integrar mi aplicación con PayPal o publicarlo en redes como Github o Bitbucket y que otros usuarios se puedan beneficiar de esa integración con unos sencillos pasos de configuración. A su vez, nosotros también podemos aprovechar los múltiples paquetes que desarrolla la comunidad. Actualmente, en Packalyst.com (una plataforma que recoge paquetes para Laravel) hay indexados 14.741 paquetes. No todos están completos y son funcionales, pero hay una gran mayoría que sí lo son y que pueden elevar tu aplicación.
- Últimas características: Laravel es compatible con las últimas tecnologías, como PHP 7, y usa como base de su frontend VUE.js. Eso no quiere decir que tengamos que usar VUE. Podemos utilizar cualquier sistema que prefiramos, como React, Angular o, simplemente, Html. De nosotros depende.
- ORM: Si has trabajado alguna vez con bases de datos, habrás podido comprobar la incomodidad que supone. Con Laravel esto se acaba, ya que funciona como si de objetos se tratara. Además, dipone de un sinfín de métodos para que operar con bases de datos sea sencillo y totalmente funcional.
- Documentación: La documentación que ofrece Laravel es completa, detallada y con ejemplos. Desde cómo instalarlo hasta cómo profundizar en su ecosistema. Un auténtico lujazo de documentación.
- Gran comunidad: La comunidad de Laravel es extensa. Hay disponibles cientos de vídeo-tutoriales, tutoriales escritos, foros, chats, etc. Es decir, si tienes alguna duda, pregunta a Google y encontrarás, normalmente, varias páginas de resultados. Los siguientes se han obtenido mediante Google Trends.
Fuentes: Portada