Saltar al contenido principal
En abril de 2026, la autenticación sin contraseña full-stack pasó a ser una funcionalidad estándar de Laravel, y se añadieron numerosas funcionalidades prácticas como los jobs Debounceable que controlan el despacho en ráfagas y el soporte de aplicaciones MCP UI. Fuente: Laravel April Product Updates

Laravel Framework

Debounceable Queued Jobs

Una solución limpia para cargas de trabajo en ráfaga. Con el atributo #[DebounceFor], múltiples despachos en el tiempo indicado se fusionan en uno y solo se ejecuta el último despacho. Es la idea inversa a ShouldBeUnique y hace más eficientes las actualizaciones consecutivas dentro de la ventana de debounce.
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // Aunque el usuario actualice el documento 10 veces en 30 segundos,
    // la reconstrucción del índice se ejecuta una sola vez
}

// También puedes debounce en el lado que lo invoca (sin cambiar la clase)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
Los jobs debounceados emiten el evento JobDebounced, con lo que puedes visualizar los jobs omitidos.

Soporte de respuesta JSON en la ruta de health

Las aplicaciones API-only ya no necesitan hacer scraping de HTML desde /up. La ruta de health integrada ahora devuelve JSON en respuesta a peticiones JSON.
{ "status": "Application is up" }
Se facilita la integración con balanceadores de carga, monitores de uptime y orquestadores. No se requiere ningún cambio de configuración.

JsonFormatter

Gracias a JsonFormatter, los datos de context() de excepciones personalizadas se registran de forma fiable en los logs estructurados. Se incluye también el contexto de excepciones anteriores dentro de la cadena de excepciones.
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,

prefersJsonResponses()

En una aplicación API, basta con añadir una línea en bootstrap/app.php para tratar como JSON las cabeceras Accept amplias, y los redireccionamientos de autenticación, los errores de validación y las páginas de excepción se serializan adecuadamente para el cliente.
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();

Soporte de Cloudflare Email Service

Cloudflare Email Service tiene ahora soporte oficial como mailer de Laravel.
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],

Soporte completo de Redis Cluster

Se han resuelto los errores CROSSSLOT en entornos Redis Cluster como AWS ElastiCache Serverless. Cuando las colas y el ConcurrencyLimiter de Laravel detectan una conexión de Cluster, envuelven automáticamente los nombres de cola con hash tags.
queues:{default}          # slot "default"
queues:{default}:delayed  # mismo slot
queues:{default}:reserved # mismo slot

Métodos de inspección de jobs de cola

Se han añadido tres métodos para revisar el contenido de los jobs sin mirar directamente en la BD.
Queue::pendingJobs();   // jobs en espera
Queue::delayedJobs();   // jobs diferidos
Queue::reservedJobs();  // jobs en procesamiento

// Acceder a instancias InspectedJob
Queue::reservedJobs('high-priority')->first()->name;
// => 'App\Jobs\SendEmail'

Form Request Strict Mode

Puedes controlar que los campos no declarados no pasen la validación. Los campos entrantes no declarados en rules() se convierten en un fallo de validación.
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}

Passkeys (autenticación sin contraseña)

La autenticación sin contraseña se ha hecho realidad de primera parte en toda la stack.
  • laravel/passkeys (lado servidor): proporciona migraciones, rutas de login/confirmación/gestión de credenciales, acciones WebAuthn y eventos
  • @laravel/passkeys (lado cliente): los helpers de React, Vue y Svelte procesan las ceremonias WebAuthn del navegador
  • Integración con Fortify: basta con activarlo mediante Features::passkeys() para que la aplicación Fortify use los mismos endpoints y contratos
// config/fortify.php
'features' => [
    Features::passkeys(),
],

Soporte de MCP UI App

Las herramientas MCP ahora pueden renderizar no solo texto, sino aplicaciones HTML completas en sandbox dentro de un iframe.
php artisan make:mcp-app-resource DashboardApp
class DashboardApp extends AppResource
{
    #[RendersApp]
    public function handle(Request $request): Response
    {
        return Response::view('mcp.dashboard-app', [
            'title' => 'Dashboard',
        ]);
    }
}

Inertia y ecosistema

  • Hook useHttp: se han añadido los callbacks onHttpException y onNetworkError
  • Adaptador Svelte 5 de Laravel Echo: se puede usar la funcionalidad de tiempo real desde Svelte con la rune useEcho
  • Dusk: clickOnceEnabled() y clickOnceVisible() previenen tests flaky
  • Horizon: soporte completo de Redis Cluster (compatible con AWS ElastiCache Serverless)
  • Extensión de VS Code: autocompletado, hover y navegación para los nuevos atributos de Laravel 13

Laravel Cloud y Laravel Forge

ProductoActualizaciones principales
Laravel CloudUI totalmente responsive con soporte móvil, mejoras en la red edge (visualización de top IP/paths, conversión de reglas de firewall y caché)
Laravel ForgeSoporte de PHP 8.5, soporte para múltiples servidores SSL, alertas de renovación de certificados
Última modificación el 13 de julio de 2026