Laravel 11 en 2026: novedades, Reverb y el stack moderno de PHP

Laravel sigue siendo el framework PHP más descargado en Packagist y el más buscado en Google. Taylor Otwell y su equipo mantienen un ciclo de release anual: Laravel 11 salió en marzo de 2024 y Laravel 12 llegó en 2025. La comunidad es enorme, la documentación es excelente y el ecosistema de paquetes cubre prácticamente cualquier necesidad.

Puedes usarlo como framework full-stack con Blade, Livewire o Inertia, o como backend de API pura que devuelve JSON. Los dos enfoques funcionan bien y la elección depende de tu equipo y tu proyecto, no de limitaciones del framework.

La instalación simplificada de Laravel 11

Uno de los cambios más visibles de Laravel 11 es que la instalación por defecto tiene muchos menos archivos. En Laravel 10 y versiones anteriores había decenas de archivos de configuración dispersos: app/Http/Kernel.php, varios providers en app/Providers/, middleware registrado en varios sitios. En Laravel 11 todo eso se centraliza.

El archivo bootstrap/app.php es ahora el punto de entrada para configurar middleware, grupos de rutas y excepciones. Los service providers de los paquetes se auto-descubren, así que no tienes que registrarlos a mano.

El archivo routes/api.php ya no existe por defecto. Si necesitas rutas de API, lo registras explícitamente con un artisan command:

php artisan install:api

Lo mismo pasa con broadcasting:

php artisan install:broadcasting

La idea es que la instalación base sea lo más ligera posible y que vayas añadiendo solo lo que necesitas. Si vienes de versiones anteriores puede sorprenderte al principio, pero en cuanto lo entiendes el proyecto queda mucho más ordenado.

También viene una ruta /up incluida por defecto, pensada para los health checks de balanceadores de carga y herramientas de monitorización. Nada que configurar, está ahí desde el primer composer create-project.

Laravel Reverb: WebSockets sin servicios externos

Antes de Reverb, si querías WebSockets en Laravel tenías que tirar de Pusher o Ably, que son servicios de pago con sus propios límites y latencias. Reverb cambia eso: es un servidor WebSocket escrito en PHP, con ReactPHP como base, que corres en tu propia infraestructura.

Arrancarlo es tan directo como:

php artisan reverb:start

Funciona con el sistema de broadcasting de Laravel que ya conoces. Usas las mismas llamadas event() y broadcast() de siempre, y en el cliente sigues usando Laravel Echo. El único cambio es que apuntas a tu propio servidor en vez de a Pusher.

Para proyectos donde no quieres depender de servicios externos o donde los costes de Pusher no cuadran, Reverb es la solución obvia. Si quieres profundizar en cómo configurarlo y usarlo en producción, puedes consultar WebSockets con Laravel Reverb: la guía completa.

Eloquent en Laravel 11: casts y consultas

Los casts de Eloquent cambian de formato en Laravel 11. En vez de definir un array $casts en el modelo, ahora se definen como métodos:

protected function nombre(): Attribute
{
    return Attribute::make(
        get: fn($value) => ucfirst($value),
        set: fn($value) => strtolower($value),
    );
}

El resultado es el mismo, pero el código queda más limpio y puedes añadir lógica sin salirte del método.

Otra mejora útil son los métodos de relación directos en las queries:

$pedidosActivos = User::query()
    ->whereRelation('pedidos', 'estado', 'activo')
    ->get();

Para colecciones grandes, chunkById() y lazyById() te permiten iterar sin cargar todos los registros en memoria de golpe:

User::query()->lazyById(200)->each(function ($user) {
    // procesar usuario
});

En desarrollo, Eloquent avisa cuando detecta lazy loading no intencionado. Así cazas antes los N+1 queries que tanto degradan el rendimiento en producción.

defer(): código que se ejecuta después de la respuesta

Laravel 11 incluye la función defer(), que te permite ejecutar código después de que PHP haya devuelto la respuesta HTTP al cliente. El usuario ya tiene su página y PHP sigue trabajando en segundo plano.

defer(fn() => enviarEmailBienvenida($user));
defer(fn() => registrarAnalytics($request));

No es un sustituto de las queues para casos que requieren persistencia o reintentos, pero viene muy bien para envíos de email no críticos, webhooks de notificación o logging analytics donde no necesitas garantías de entrega.

Queues y Jobs en 2026

El sistema de colas de Laravel sigue siendo uno de sus puntos fuertes. Job Batching en Laravel: procesar tareas pesadas en segundo plano cubre el caso de uso más habitual, pero hay más herramientas:

  • Laravel Horizon: supervisor de queues con dashboard visual. Solo funciona con Redis, pero si ya lo tienes en tu stack es la forma más cómoda de monitorizar workers y métricas de throughput.
  • Job batching: Bus::batch([new Job1, new Job2])->dispatch() procesa lotes con callbacks then, catch y finally.
  • ShouldBeUnique: jobs que no se duplican si ya hay uno igual pendiente en la cola.
  • Job middleware: WithoutOverlapping y ThrottlesExceptions para controlar la concurrencia y los reintentos en caso de errores.

Testing en Laravel 11

Laravel soporta PHPUnit y Pest de forma oficial. Pest tiene una sintaxis más concisa y se ha vuelto muy popular en la comunidad, pero los dos son opciones válidas y puedes mezclarlos en el mismo proyecto.

Por defecto, el .env.testing usa SQLite en memoria para los tests de base de datos. Con RefreshDatabase los tests son rápidos porque no hay que levantar MySQL ni limpiar tablas manualmente.

Http::fake([
    'api.servicio.com/*' => Http::response(['ok' => true], 200),
]);

Para verificar efectos secundarios sin ejecutarlos:

  • Mail::fake(): comprueba que se envió el email correcto sin mandarlo de verdad.
  • Event::fake(): verifica que se disparó el evento esperado.
  • Queue::fake(): comprueba que el job se añadió a la cola sin procesarlo.

Estos helpers hacen que los tests sean rápidos y predecibles, sin dependencias externas que puedan fallar.

El stack moderno: Inertia, Livewire y Vite

Laravel en 2026 se usa con tres stacks frontend distintos según el equipo:

  • Inertia.js: conecta Laravel con Vue o React sin necesidad de definir una API REST explícita. El backend devuelve props como si fueran respuestas de controlador normal, e Inertia renderiza el componente frontend. Es la opción más popular en proyectos con equipos que conocen Vue o React.
  • Livewire: componentes PHP reactivos sin escribir JavaScript. La respuesta HTTP va y viene con AJAX de forma transparente. Es la opción para equipos que prefieren quedarse en PHP y no quieren mantener código JavaScript aparte.
  • Vite: reemplazó a Laravel Mix hace tiempo. npm run dev arranca el servidor con HMR, npm run build genera los assets para producción. Más rápido y con mejor soporte de TypeScript que Mix.

Los tres enfoques tienen soporte oficial y documentación completa. No hay una opción correcta universal: depende de si tu equipo viene del mundo PHP o del mundo JavaScript.

Imagen: Pexels / Brett Sayles

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP