Analizamos las ventajas de Laravel a partir de un vídeo de YouTube —PHP is the future— inspirador y con buenos argumentos sobre este framework PHP para back-end.

Omatech desarrolla proyectos con integraciones complejas con Laravel

Interés por Laravel como framework full stack

Laravel es un framework PHP para back-end, útil para proyectos full stack, que está generando cada vez más interés entre los programadores. Así, cada vez más desarrolladores que ahora usan otros frameworks para PHP, como Symfony y CodeIgniter, están explorando las posibilidades que ofrece Laravel como framework full stack. Esta tendencia es visible, por ejemplo, en Twitter, uno de los espacios más dinámicos de reflexión sobre código y sobre desarrollo web y apps móviles.

Laravel, el framework PHP y back-end mejor valorado en GitHub

Pero, ¿por qué es tan potente este framework? ¿Qué hace que su ecosistema sea tan bueno? Hay un vídeo en YouTube del desarrollador Aaron Francis que responde a la perfección a esas dos preguntas. Lo hace a través de una descripción general («del todo parcial», según un entusiasta Francis) de las principales características y funcionalidades del framework, tanto PHP como back-end, mejor valorado en GitHub. Laravel tiene 73.600 estrellas en esta plataforma de colaboración para desarrolladores, por delante de Symfony (framework PHP) y de Django (framework de Python para back-end).

PHP es el futuro

PHP es el futuro. Así se titula el vídeo de este destacado miembro de la comunidad creada alrededor de Laravel. Lo que tenemos claro es que PHP es extremadamente compatible y súper popular como lenguaje para desarrollo back-end. Según W3Tech, emplean PHP el 77,4% de todas las webs de las que se conoce el lenguaje de programación del lado del servidor. Ese predominio solo se consigue con un lenguaje de calidad y, claro, con frameworks a la altura.

Documentación y Bootcamp de Laravel

Laravel es un gran framework por sí mismo. Pero su productividad y su versatilidad son aún mayores gracias a la documentación, al Bootcamp y a otros recursos de guía y aprendizaje.

  • Documentación. La exhaustiva y concienzuda documentación del framework es uno de sus principales puntos fuertes. «Cada vez que hay una nueva major release [anual, cada mes de febrero], se leen cada palabra de la documentación y la mejoran, y añaden cosas y quitan cosas. La documentación va a cubrir cualquier necesidad que puedas tener», explica Francis en el vídeo. En febrero de 2023 se publicó Laravel 10, con toda la documentación asociada a la nueva versión.
  • Bootcamp. Si necesitas una guía más en profundidad sobre el framework, que te muestre cómo crear una aplicación desde cero, tienes a tu disposición el Bootcamp de Laravel.
  • Laracasts. Tutoriales en profundidad, «el Netflix de los contenidos de formación de Laravel».
  • Laravel Daily. Contenidos formativos en YouTube.
  • Codecourse. Sitio web con tutoriales.
  • Twitter. Muchos desarrolladores expertos en el framework comparten su visión y sus conocimientos en Twitter.

Desarrollo local con Laravel

Hay dos opciones que facilitan mucho las cosas al hacer un desarrollo local. La gran ventaja de este framework al hacer la configuración de servicios en una máquina local es que muchos elementos ya vienen de serie.

  • Laravel Sail. Si optas por la plataforma para contenedores Docker. Laravel Sail es first-party, es decir, un software elaborado desde Laravel. Se trata de una interfaz de línea de comandos (command-line interface, CLI) ligera para interactuar con el entorno de desarrollo Docker que viene por defecto en el framework.
  • Laravel Valet. Opción solo para Mac que prescinde de Docker.

Vite para el front-end

Vite, herramienta de construcción para el desarrollo front-end (JavaScript, CSS), te lo da todo hecho. Gracias a ello, puedes prescindir de Webpack y ahorrarte su configuración. Vite proporciona un entorno de desarrollo muy rápido y agrupa todo el código para la producción.

Rutas en Laravel

«El enrutamiento en Laravel puede ser tan complicado y tan sencillo como desees», explica Aaron Francis. Una de las ventajas que destaca es que «puedes tener rutas API específicas que tengan diferente middleware de autenticación». Este framework ya lleva de serie middleware —software para la comunicación o conectividad entre aplicaciones, o componentes de aplicación— de autenticación.

Middleware HTTP

¿Qué podemos destacar del middleware HTTP? «Laravel incorpora un modo de mantenimiento, así que puedes decir: mi aplicación está en mantenimiento ahora y este middleware detendrá a todo el mundo en la puerta. O bien puedes establecer una contraseña en el modo de mantenimiento, y dejar que ciertas personas, como tus compañeros de desarrollo, puedan revisar cosas cuando la aplicación está en modo de mantenimiento».

Tenemos el stack de middleware global. Y, por otra parte, tenemos grupos de middleware. «Puedes crear tantos grupos de middleware como quieras, y muchos de esos middlewares ya vienen en el paquete del framework».

Migraciones de la base de datos

En Laravel, las migraciones vienen a ser un control de versiones de la base de datos. La idea es optimizar la gestión de los cambios que hacen los programadores de un equipo de desarrollo a lo largo del tiempo.

«Laravel viene con una tabla de usuarios. El framework sabe que estás creando una aplicación y que, probablemente, necesitas usuarios. Si no quieres usuarios, puedes simplemente borrar la migración antes de ejecutarla. Pero la mayoría de las aplicaciones necesitan usuarios y, por eso, ya vienen con una tabla de usuarios».

«El framework también viene con reseteo de contraseñas». Hay que subrayar la facilidad al activar un sistema completo de autenticación: registro, login y cambio de contraseña.

Eloquent, el ORM de Laravel

Laravel incorpora un Object Relational Mapper (ORM), que se llama Eloquent y que es «increíblemente poderoso».

Eloquent facilita, agiliza y flexibiliza la interacción con las bases de datos. Las consultas a bases de datos se pueden hacer con la sencilla sintaxis PHP, sin necesidad de escribir el más complejo código SQL.

«Por debajo [de Eloquent] tenemos la capa de Query Builder que te da un acceso más potente y flexible para hacer consultas a la base de datos sin tener que recurrir a raw SQL. Por debajo de Query Builder puedes escribir raw SQL […]. Funcionará sin ningún problema. Por tanto, Laravel te da la flexibilidad para elegir el stack de base de datos que quieras».

«Así que tienes el ORM [Eloquent], tienes el Query Builder y, si te hace falta, puedes usar raw SQL. Laravel soporta un montón de bases de datos para una funcionalidad inmediata».

Caching en Laravel

¿Qué ventajas resalta este youtuber del caching? «En la configuración de la cache verás todos los drivers que son compatibles con Laravel. Lo bueno de esto es que te da una interfaz unificada y que maneja los drivers por debajo. Así que puedes usar un driver Redis o un driver DynamoDB. No importa lo que utilices, la interfaz sigue siendo la misma. […] Lo mismo pasa con los sistemas de archivos».

Creando y programando comandos CLI sin Cron

¿Qué dice el desarrollador Aaron Francis sobre la creación y programación de comandos? «Ahora podemos ejecutar comandos según un horario, pero no tenemos que perder el tiempo con Cron porque Laravel nos cubre también aquí las espaldas. […] Así que en lugar de HTTP, podemos programar comandos para que se ejecuten en diferentes intervalos». ¿Con qué frecuencia queremos ejecutar un comando? «Podríamos ejecutarlo cada hora, cada 15 minutos, cada cuatro horas, cada minuto, cada cinco minutos, cada cuatro minutos […]».

¿Qué ocurre si el proceso es muy intenso? Lo puedes ejecutar en horas menos concurridas, por ejemplo, entre las 21 horas y las 3 de la mañana. Sin olvidarte de especificar el huso horario. Y lo puedes hacer en segundo plano, porque se trata de un proceso muy pesado.

Con el Lottery class del framework, la programación puede ser tan sofisticada como para que «un comando se ejecute cada minuto, pero solo lo haga durante un 10% del tiempo».

Testing en Laravel

«Los tests ya están en Laravel», resalta Francis. Las herramientas de testing automatizado son una gran ventaja del framework. Así se simplifica la simulación de las acciones más habituales del usuario, como peticiones de información y formularios.

La comunidad de desarrolladores del framework da una gran importancia al testing. Esta visión se refleja en las funcionalidades de testing y en la gran disponibilidad de cursos de formación sobre testing.

El testing ha sido una prioridad desde la primera versión del framework. «Puedes ejecutar pruebas PHP Artisan y tus pruebas se ejecutarán».

Ecosistema de Laravel

El ecosistema no ha dejado de crecer con unas herramientas que simplifican el desarrollo.

Laravel Blade

El motor de plantillas Blade viene con el framework. «Pero, ¿no es PHP por sí mismo un lenguaje de plantillas? Sí que lo es, pero ha llovido mucho desde los días del PHP de antaño. Así que PHP es hoy mucho más que un lenguaje de plantillas».

Pues bien, «Blade tiene todo lo que le podrías pedir a un lenguaje de plantillas».

Un motor de plantillas PHP permite que el PHP del back-end de un sitio web se pueda mostrar en el HTML del front-end.

Laravel Livewire

Laravel Livewire es un paquete de terceros muy similar a Phoenix LiveView. «Livewire te permite escribir PHP en el front-end. Pero, sobre todo, lo que hace es salvar la brecha [entre back-end y front-end] de manera que no tienes que escribir controllers, y no tienes que escribir rutas. […] Livewire va un paso más allá de Blade».

Laravel Inertia

Una idea importante para este desarrollador es que, al margen de Blade y Livewire, Laravel facilita las cosas si quieres trabajar con otros frameworks de front-end. Entre otras opciones adicionales, menciona Inertia.js, que se puede usar con Laravel en el back-end.

Inertia.js es una herramienta que conecta un framework del lado del servidor, como Laravel, con un framework del lado del cliente, como Vue 2, Vue 3, React o Svelte. Es el pegamento entre el back-end con Laravel y el front-end por el que apueste el desarrollador.

Starter Kits: Breeze y Jetstream

Los starter kits Breeze y el más completo Jetstream te ayudan a ponerte en marcha, con independencia del front-end que elijas.

Hosting de Laravel: Forge y Vapor

En el ecosistema Laravel, hay dos soluciones de hosting originales:

  • Laravel Forge. «Configura servidores con independencia de donde se encuentren. Así que das acceso a Forge a un VPS (Servidor Privado Virtual) que podría estar en DigitalOcean, en AWS (Amazon Web Services) o en Ploi, o en cualquier sitio. Y Forge te configurará el servidor a la medida de Laravel».
  • Laravel Vapor. «Si optas por serverless, Vapor coordina tus recursos dentro de tu cuenta AWS (Amazon Web Services) Lambda».

Laravel Horizon: colas

Laravel Horizon es un potente paquete first-party del ecosistema. Te permite monitorizar con gran facilidad métricas clave de tu sistema de colas: job throughput, runtime y job failures.

«Es como Sidekiq, si estás familiarizado con el ecosistema de Ruby on Rails, pero es totalmente gratuito».

Laravel Cashier: suscripciones en Stripe

El paquete Laravel Cashier te permite gestionar suscripciones en sistemas de pago como Stripe o Paddle.

Laravel Dusk: testing de navegadores

Laravel Dusk es una herramienta automática de testing de navegadores web. «Te resuelve todo el testing».

Laravel Socialite: logins OAuth para tu aplicación

Laravel Socialite es un mecanismo simplificado de autenticación a través de redes sociales. El usuario se puede registrar en múltiples sitios haciendo uso de una sola identidad digital. Cualquier servicio —GitHub, Twitter, Facebook, WhatsApp— que ofrezca un login OAuth. «Si quieres ofrecer un login a partir de redes sociales, Socialite lo hace posible con tres o cuatro líneas de código».

Calidad del código en Laravel

La calidad del código es muy importante para los programadores de la comunidad.

Aaron Francis destaca un dato curioso que, a la vez, es un reflejo de esa cultura detallista de la comunidad de desarrolladores. «Si te metes en el Laravel core, verás que en cada comments block [block de comentarios para dar contexto a las líneas de código], cada línea es tres caracteres más corta que la de arriba». Así es cómo el código fluye formando al mismo tiempo un dibujo. «Es vanidad pura, pero es bonito».

«En el ecosistema Laravel, y en el ecosistema PHP, vamos sobrados de herramientas para un código de calidad», asegura.

Únete a Laravel

El mensaje final es que, si sientes curiosidad, si quieres aprender más sobre el framework, te unas a la comunidad. Visita la web, explora la documentación y aprovecha todos los recursos formativos a tu disposición.

Este framework es muy flexible. Así que, sean cuales sean tus preferencias, seguro que encuentras la manera de hacer que Laravel sea tu framework PHP.