Vai al contenuto principale
Ad aprile 2026 l’autenticazione senza password full-stack è diventata una funzionalità standard di Laravel e sono state aggiunte molte funzionalità pratiche, come i job Debounceable per controllare i dispatch di job burst e il supporto per le MCP UI App. Fonte: Laravel April Product Updates

Laravel Framework

Debounceable Queued Jobs

Una soluzione pulita per carichi burst. Usando l’attributo #[DebounceFor], più dispatch entro un tempo specificato vengono raggruppati in uno solo, ed eseguito solo l’ultimo. È il pensiero inverso di ShouldBeUnique e ottimizza gli aggiornamenti consecutivi all’interno della finestra di debounce.
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // Anche se un utente aggiorna il documento 10 volte in 30 secondi,
    // la ricostruzione dell'indice viene eseguita una sola volta
}

// Anche il chiamante può fare debounce (nessuna modifica alla classe)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
I job in debounce emettono l’evento JobDebounced, quindi puoi rendere visibili i job saltati.

Risposta JSON per la rotta di health

Le app solo-API non hanno più bisogno di fare scraping dell’HTML da /up. La rotta di health integrata restituisce ora JSON per le richieste JSON.
{ "status": "Application is up" }
L’integrazione con load balancer, uptime monitor e orchestratori diventa semplice. Non sono necessarie modifiche di configurazione.

JsonFormatter

Con JsonFormatter, i dati context() delle eccezioni personalizzate vengono registrati in modo affidabile nei log strutturati. È incluso anche il contesto delle eccezioni precedenti nella catena.
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,

prefersJsonResponses()

Nelle app API, basta aggiungere una riga in bootstrap/app.php per trattare un ampio range di header Accept come JSON e ottenere che redirect di autenticazione, errori di validazione e pagine di eccezione vengano serializzati in modo appropriato per il client.
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();

Supporto Cloudflare Email Service

L’Email Service di Cloudflare è ora ufficialmente supportato come mailer di Laravel.
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],

Supporto completo a Redis Cluster

Gli errori CROSSSLOT in ambienti Redis Cluster come AWS ElastiCache Serverless sono stati risolti. Quando la coda di Laravel e il ConcurrencyLimiter rilevano una connessione Cluster, incapsulano automaticamente i nomi di coda con hash tag.
queues:{default}          # slot "default"
queues:{default}:delayed  # stesso slot
queues:{default}:reserved # stesso slot

Metodi di ispezione dei job in coda

Sono stati aggiunti tre metodi per verificare il contenuto dei job senza guardare direttamente il DB.
Queue::pendingJobs();   // Job in attesa
Queue::delayedJobs();   // Job in ritardo
Queue::reservedJobs();  // Job in elaborazione

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

Form Request Strict Mode

Puoi controllare che i campi non dichiarati non superino la validazione. I campi in arrivo non dichiarati in rules() causano il fallimento della validazione.
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}

Passkey (autenticazione senza password)

L’autenticazione senza password è stata realizzata come stack di prima parte completo.
  • laravel/passkeys (lato server): fornisce migration, rotte di login/conferma/gestione delle credenziali, azioni WebAuthn ed eventi
  • @laravel/passkeys (lato client): helper per React, Vue e Svelte che gestiscono la cerimonia WebAuthn del browser
  • Integrazione con Fortify: basta abilitare Features::passkeys() per far usare all’app Fortify gli stessi endpoint e contratti
// config/fortify.php
'features' => [
    Features::passkeys(),
],

Supporto MCP UI App

Gli strumenti MCP possono ora renderizzare non solo testo, ma anche app HTML completamente sandbox in 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 ed ecosistema

  • Hook useHttp: aggiunte le callback onHttpException e onNetworkError
  • Adapter Svelte 5 di Laravel Echo: la rune useEcho permette di usare funzionalità realtime da Svelte
  • Dusk: clickOnceEnabled() e clickOnceVisible() per prevenire test flaky
  • Horizon: supporto completo a Redis Cluster (compatibile con AWS ElastiCache Serverless)
  • Estensione VS Code: supporto ad autocomplete, hover e navigazione per i nuovi attributi di Laravel 13

Laravel Cloud e Laravel Forge

ProdottoAggiornamenti principali
Laravel CloudUI completamente responsive con supporto mobile, rafforzamento della edge network (visualizzazione top IP/path, conversione di regole di firewall e cache)
Laravel ForgeSupporto a PHP 8.5, supporto a più server SSL, avvisi di rinnovo dei certificati
Ultima modifica il 13 luglio 2026