Por qué debes darle una oportunidad a Laravel en tus proyectos
Laravel es un framework de desarrollo web basado en PHP de naturaleza Open Source, es decir, desarrollado y soportado por la comunidad. Es gratuito y su código fuente está disponible en GitHub bajo licencia MIT.
La primera versión de Laravel fue creada por Taylor Otwell como un intento de proporcionar una alternativa al framework CodeIgniter, esta versión fue lanzada en junio de 2011. En los años siguientes se han ido lanzando nuevas versiones que han ido mejorando la calidad del mismo. La última versión publicada a fecha de redacción de este artículo es la 8, lanzada en septiembre de 2020.
Según el portal BuiltWith en la actualidad Laravel se utiliza en más de 1.200.000 sitios web, siendo una de las tecnologías predominantes basadas en PHP. Comparado con los 28 millones de sitios que utilizan WordPress puede parecer poco, pero es una cifra muy reseñable.
¿Qué hace tan especial a Laravel?
Laravel destaca por una serie de características que me gustaría enfatizar:
- Dispone de un sistema modular de paquetes, por lo que es muy sencillo reutilizar desarrollos previos o implementar librerías de terceros. Desde la versión 4 utiliza Composer como gestor de dependencias para incorporar de manera agnóstica paquetes de terceros.
- Hace uso de Eloquent ORM, un sistema de gestión de base de datos que permite tratar las tablas como si fueran clases simplificando la interacción con las mismas y dotando al sistema de mucha robustez.
- Como alternativa a Eloquent ORM dispone de un constructor de querys que ofrece un conjunto de clases y métodos para construir consultas a base de datos vía código permitiendo incluso utilizar un cache para acelerar los resultados.
- Las webs generadas con este framework tienen una estructura lógica que implementa el uso de controladores como parte de la declaración de la ruta.
- Laravel crea automáticamente las URIs permitiendo que cuando se realizan cambios en el sistema de enrutado estos cambios se propaguen de manera automática.
- Facilita mucho la creación de controladores Restful para crear una API en la que servir las peticiones HTTP de tipo GET y POST, es muy sencillo crear este tipo de mecanismos utilizando esta tecnología.
- La gestión de clases incluye la carga automática de todas las clases de PHP necesarias que incluyen todas las rutas de acceso pertinentes. Evita también el uso de clases innecesarias para evitar su carga.
- Su sistema de plantillas Blade permite combinar uno o más plantillas con modelos de datos para ofrecer vistas, esta tecnología permite además el uso de estructuras de control como condiciones y bucles.
- Permite el uso de la tecnología VueJS como alternativa a Blade para el funcionamiento de las plantillas del front.
- Permite la inyección de dependencias.
- Las modificaciones de base de datos están trazadas con un sistema de migraciones que exige su ejecución vía código lo cual permite una mayor legibilidad de la evolución de las mismas y facilita mucho el despliegue del mismo proyecto en diferentes instancias.
- Destacar también su sistema de “seeding” de base de datos gracias al cual se pueden crear bases de datos con datos por defecto de una manera muy intuitiva, ya sea para realizar pruebas o para insertar datos necesarios en un despliegue inicial.
- Integra los tests unitarios de PHP de manera nativa para evitar problemas de código al editar el proyecto. Estos tests se pueden ejecutar a través de Artisan en la línea de comandos.
- Aporta un sistema de paginación automático que evita los errores habituales cuando se programa de manera manual este tipo de función.
- La validación de formularios se implementa de manera automática a través de eventos que utilizan “listeners” para controlar el comportamiento de los mismos.
- La comunidad ha desarrollado también Homestead, una máquina virtual basada en Vagrant con todas las herramientas necesarias para desarrollar Laravel fuera de un servidor de producción.
- Ofrece también el uso de Canvas, una herramienta que permite visualizar las tendencias del mes, el origen de los visitantes, estadísticas de publicación, datos de redes sociales, etc.
- Carga “perezosa” (lazy collection) para grandes volúmenes de datos, permite cargar estos de una manera escalonada sin saturar la memoria del servidor.
Además de estas características Laravel tiene una serie de puntos fuertes que le hacen destacar frente a otros frameworks de PHP:
-
Cuida mucho la ciberseguridad, no hay sistema completamente seguro, pero Laravel lo intenta. A destacar que utiliza tokens CSRF en todas las peticiones get y post.
-
Es muy sencillo comenzar a crear webs con Laravel, otra cosa muy distinta es dominarlo, pero en unas pocas horas eres capaz de aprender los puntos básicos para crear una web.
-
Sus tutoriales de formación en Laracast, luego hablaremos más de ellos.
-
Su sistema de templates, ya sea con Blade o con VueJS está muy bien diseñado.
-
Pura arquitectura MVC, tendrás difícil complicar la estructura de un proyecto.
-
Diseño muy modular que te ayuda a tener un proyecto a prueba de bugs contagiables.
-
Una amplia comunidad siempre dispuesta a mejorar el framework y a ayudar.
Laravel no es perfecto, tiene también algunos aspectos desde mi punto de vista a mejorar. Si no has desarrollado tu proyecto siguiendo las guías oficiales de Laravel te puedes topar con que al hacer una actualización de versión mayor parte de tu código deje de funcionar.
Por último también para webs móviles su engine básico sigue pesando demasiado, aunque en cada versión han ido mejorando este punto.
Hablemos de la formación
En temas de formación Laravel tiene una comunidad muy amigable y ponen a disposición de todos Laracast, es el portal oficial de formación de Laravel y contiene gran cantidad de cursos muy muy elaborados. Algunos son gratuitos, pero los más interesantes son de pago, los precios son muy razonables.
Mencionar también Laracon, es la conferencia oficial que se organiza en torno a esta tecnología, cubre tanto aspectos de desarrollo como aspectos de uso así como temas de desarrollo. Tradicionalmente siempre ha tenido lugar en Estados Unidos y en Europa una vez al año, en el caso europeo en la ciudad de Amsterdam. Debido a la pandemia del Covid se ha convertido en una conferencia online.
Tecnologías emparentadas
Laravel toma muchas de sus características originales de Symphony, otro framework de PHP muy querido por la comunidad.
El creador de Laravel –Taylor Otwell– ha desarrollado un microframework basado en este framework, tiene menos funcionalidades, pero es mucho más ligero. Es ideal para crear APIs robustas, seguras y muy ligeras en consumo de recursos.
Hay también multitud de librerías y forks con versiones personalizadas de Laravel adaptadas para dar servicio a necesidades específicas de cada tipo de negocio.
Mi experiencia personal
En mi caso llevo vinculado a esta tecnología desde hace ya varios años. Lo hemos utilizado especialmente para aplicaciones de negocio, tanto para la parte back, como para la API como para el front ya sea con VueJS o Blade.
Nos ha permitido un desarrollo ágil, rápido, muy amigable con los tests unitarios y garantizando tanto la seguridad como la estructuración ordenada de los proyectos. Es muy sencillo integrar nuevos desarrolladores en los equipos detrás de estos proyectos.
Sé que vivimos en tiempos de ReactJS, es el lenguaje de moda, pero si queréis tener un proyecto de cierta envergadura sostenible en el tiempo Laravel me parece una buena opción.
Me gustaría por último agradecer a Gonzalo Pabón su ayuda para revisar este artículo, es el mayor especialista que conozco de esta tecnología y se agradece de corazón su guía y correcciones.
Más artículos de Gabriel Cuesta
¡Para estar al día de los artículos, episodios de podcast, webinar y eventos que vamos publicando SUSCRÍBETE a nuestra Newsletter quincenal!