Vai al contenuto principale
Ottobre 2026 ha introdotto funzionalità per controllare come vengono espresse le richieste, dove vanno le letture del database e come vengono eseguiti i task pianificati su più server. Laravel Cloud ha semplificato l’invio di email e la configurazione dei comandi pianificati, mentre Forge rende più facile seguire gli aggiornamenti di sicurezza di PHP e i provisioning falliti. Questa pagina è un resoconto mensile basato sul post ufficiale “Laravel October Product Updates” pubblicato il 4 novembre e sulle voci di ottobre del changelog ufficiale del Framework. Le fonti primarie sono state verificate il 7 novembre 2026 e la parte Framework riguarda solo Laravel 13. Le release di novembre non sono incluse. Fonti:

Laravel Framework

Release di ottobre

Oltre alle principali novità del changelog ufficiale, date e versioni sono state verificate nelle release notes. Di seguito vengono presentati in dettaglio i nove punti del changelog ufficiale. Per correzioni minori e modifiche alle dipendenze, consulta le singole release notes.

Definire ricerche con corpo della richiesta tramite route QUERY

La v13.35.0 ha aggiunto Route::query(), che supporta il metodo HTTP QUERY. Puoi definire route che ricevono i criteri di ricerca nel corpo della richiesta invece che nella query string di GET.
Anche Route::any() corrisponde alle richieste QUERY, e l’elenco delle route riconosce questo metodo. Il SearchProductsController qui sopra rappresenta un controller invocabile della tua applicazione che implementa la ricerca.
Le route QUERY del gruppo di middleware web sono soggette alla verifica CSRF. Non dare per scontato di poter saltare la verifica come per GET solo perché si tratta di una ricerca. Invia il token CSRF.
Fonti primarie: Register QUERY Routes, routing.md ufficiale di Laravel 13. Pagine correlate: Routing, Protezione CSRF

Evitare letture obsolete anche nelle richieste successive a una scrittura

Con un database a lettura e scrittura separate, una lettura subito dopo un aggiornamento può finire su una read replica non ancora sincronizzata. L’opzione esistente sticky copre solo la stessa richiesta. Il middleware PreventStaleDatabaseReads della v13.38.0 protegge per un certo periodo anche le richieste successive della stessa sessione. In bootstrap/app.php, importa Illuminate\Foundation\Http\Middleware\PreventStaleDatabaseReads e aggiungilo nella callback di withMiddleware() con $middleware->web(append: [PreventStaleDatabaseReads::class]);. Non si attiva automaticamente. Il middleware registra nella sessione l’orario delle scritture sulla connessione al database predefinita. Per impostazione predefinita, indirizza le letture di quella connessione al database di scrittura per 2 secondi dopo una scrittura. Puoi cambiare il periodo registrando, ad esempio, PreventStaleDatabaseReads::for(5) al posto della classe. Poiché usa la sessione, deve essere eseguito dopo StartSession. Non cambia le letture di altre sessioni o di altre connessioni al database e non rileva quando la replica ha terminato la sincronizzazione. Fonti primarie: Avoid Stale Reads After Database Writes, database.md ufficiale di Laravel 13. Pagine correlate: Database, Sessione

Leggere dal database di scrittura solo per operazioni specifiche

Connection::usingWritePdo(), aggiunto anch’esso nella v13.38.0, sposta la destinazione di lettura della connessione sul database di scrittura solo durante l’esecuzione della callback. È utile quando vuoi che l’applicazione indichi esplicitamente quali letture sono critiche, invece di proteggere un’intera sessione.
Si applica anche alle query Eloquent e alle query di relazione che usano la stessa connessione. Restituisce il risultato della callback e ripristina l’impostazione di lettura precedente anche in caso di eccezione, così lo spostamento non si propaga al codice successivo. Fonti primarie: Temporarily Read from the Write Database Connection, database.md ufficiale di Laravel 13

Configurare in blocco l’esecuzione dei task su un solo server

Per ridurre le dimenticanze di onOneServer() quando lo scheduler gira su più server, la v13.35.0 ha aggiunto Schedule::alwaysOnOneServer(). Chiamalo in boot() di AppServiceProvider per applicarlo in una volta a tutti i task pianificati interessati.
Questo valore predefinito si applica solo quando lo chiami. Le closure pianificate senza nome sono escluse e continuano a essere eseguite su ogni server.
onOneServer() richiede una cache centrale condivisa da tutti i server. I driver indicati dalla documentazione ufficiale sono database, memcached, dynamodb e redis. Aggiungere l’impostazione non fornisce da sola un’infrastruttura di lock tra server.
Fonti primarie: Run Scheduled Tasks on One Server by Default, scheduling.md ufficiale di Laravel 13. Pagina correlata: Pianificazione dei task

Verificare i dispatch dei fake indicando le proprietà

Dalla v13.35.0, i fake di Queue, Bus, Event e Notification accettano un array di proprietà attese. Non serve più scrivere ogni volta una callback solo per confrontare degli attributi. Ad esempio, con un job ShipOrder che ha una proprietà pubblica order e un $order preparato nel test, puoi verificare così:
Tutte le proprietà indicate devono corrispondere. I valori vengono confrontati in modo stretto, ma i modelli Eloquent vengono confrontati con is(), quindi corrisponde anche un’altra istanza che rappresenta lo stesso modello. I fake verificano il dispatch, non il risultato dell’esecuzione del job. Fonti primarie: Assert Fake Dispatches by Their Properties, queues.md ufficiale di Laravel 13. Pagine correlate: Code, Mocking

Indicare il limite di memoria del worker in percentuale

Dalla v13.35.0, l’opzione --memory di queue:work accetta una percentuale del memory_limit di PHP. Puoi adattare la soglia di uscita del worker all’impostazione di PHP senza ricalcolare un valore fisso in MB per ogni ambiente.
Non è una percentuale della memoria totale dell’host o del container. Se il memory_limit di PHP è illimitato (-1), usa un valore in MB invece di una percentuale. Il riavvio di un worker terminato alla soglia è affidato a un monitor di processi come Supervisor. Fonti primarie: Set Queue Worker Memory Limits as Percentages, queues.md ufficiale di Laravel 13

Restituire Markdown con un Content-Type dedicato

La v13.35.0 ha aggiunto markdown() alla response factory. Restituisce un contenuto Markdown come text/markdown, e puoi indicare anche il codice di stato e intestazioni aggiuntive.
Puoi combinarlo con la logica che sceglie il formato della risposta, come wantsMarkdown(). Non converte il Markdown in HTML. È un’API per servire il Markdown stesso come risposta. Fonti primarie: Return Markdown Responses, responses.md ufficiale di Laravel 13. Pagina correlata: Risposte

Eseguire query analitiche in modalità OLAP con Vitess

La v13.36.0 ha aggiunto isVitess() e olap() alle connessioni MySQL. Puoi rilevare se usi Vitess o PlanetScale ed eseguire query analitiche con il workload OLAP.
Il workload viene impostato sia sulla connessione di lettura sia su quella di scrittura e riportato a OLTP al termine della callback. Viene ripristinato anche in caso di eccezione, e su una normale connessione MySQL senza Vitess la callback viene eseguita senza cambiare il workload. Fonti primarie: Use OLAP Workloads with Vitess Connections, database.md ufficiale di Laravel 13

Trovare le regole di validazione esistenti tramite i builder

La v13.36.0 ha aggiunto metodi builder di Rule per molte regole che prima si scrivevano come stringhe. Metodi come requiredWith(), acceptedIf(), regex() e timezone() si trovano più facilmente con il completamento dell’IDE, e puoi scegliere lo stile mantenendo il comportamento di validazione esistente.
I nomi dei metodi sono in camel case. Puoi mescolarli con le regole stringa, quindi non serve riscrivere tutte le regole esistenti in una volta. Fonti primarie: Discover More Validation Rules Through Builders, validation.md ufficiale di Laravel 13. Pagina correlata: Validazione

Laravel Cloud

Il blog mensile ufficiale presenta i tre punti seguenti. Fonti primarie: Laravel October Product Updates — Laravel Cloud, Laravel Cloud changelog. Pagina correlata: Presentazione di Laravel Cloud

Laravel Forge

  • Avvisi sugli aggiornamenti di sicurezza PHP: Forge mostra, per ogni server, le versioni interessate dalle release di sicurezza PHP di ottobre e la disponibilità delle versioni corrette. Con Recheck versions ricontrolli la versione effettivamente installata. Ricontrollare la visualizzazione e aggiornare PHP sono operazioni separate.
  • Gestione dei provisioning falliti: i server che non riescono a completare il provisioning vengono mostrati come falliti, con notifica, indicazioni sul passo successivo e un’azione di eliminazione. Anche l’installazione di PHP e Nginx viene ritentata prima di confermare il fallimento.
Il blog mensile cita anche la pubblicazione di un post-mortem sulla risposta di sicurezza PHP e Node.js di ottobre. Per le misure adottate e le decisioni di aggiornamento, consulta gli avvisi ufficiali. Fonti primarie: Laravel October Product Updates — Laravel Forge, Laravel Forge changelog

Articoli correlati

Aggiornamenti di settembre 2026

Uno sguardo alla costruzione dei provider AI a runtime, alle estensioni di ricerca, a Mercure e agli ambienti di anteprima isolati in Cloud.

Guida al database

Rivedi la separazione tra lettura e scrittura e le basi delle connessioni al database.
Ultima modifica il 7 novembre 2026