Laravel su PHP 8.
Una major alla volta.
Aggiorniamo le applicazioni Laravel rimaste indietro di più versioni principali seguendo la guida ufficiale di ogni passaggio, con test sui percorsi critici e le dipendenze affrontate per prime.
Per applicazioni ferme su Laravel 5, 6 o 8, con un framework senza patch, un PHP spesso fuori supporto e pacchetti che nel frattempo hanno cambiato nome, interfaccia o manutentore.
Dal ramo che hai.
Al ramo supportato.
Ogni versione di Laravel supporta un intervallo di versioni di PHP, e intervalli consecutivi si sovrappongono. Aggiorniamo Laravel finché il PHP in uso lo consente, poi PHP restando sulla stessa versione di Laravel, poi di nuovo Laravel.
- 01Laravel 6PHP 7.2 – 8.0
Punto di partenza tipico, fuori supporto da settembre 2022
- 02Laravel 8PHP 7.3 – 8.1
Passando per Laravel 7, poi PHP 8.0 sulla stessa versione
- 03Laravel 10PHP 8.1 – 8.3
Dopo Laravel 9, che sostituisce SwiftMailer con Symfony Mailer
- 04Laravel 12PHP 8.2 – 8.5
Dopo Laravel 11, sola sicurezza fino al 24 febbraio 2027
- 05Laravel 13PHP 8.3 – 8.5
Supporto attivo, sicurezza fino al 17 marzo 2028
Versioni e PHP.
Ramo per ramo.
Ogni versione principale riceve correzioni di bug per 18 mesi e di sicurezza per 2 anni. La tabella riassume le versioni che incontriamo più spesso nei progetti da aggiornare.
Fonti: Note di rilascio di Laravel 13 · Guida di aggiornamento di Laravel. La matrice dei rami di PHP con le distribuzioni Linux è nella pagina Versioni PHP.
Cosa blocca l’upgrade.
E come lo sblocchiamo.
Il framework si aggiorna seguendo la guida di ogni versione. I tempi li decidono le dipendenze, i test e i passaggi in cui cambia PHP.
Il salto diretto all’ultima versione
Laravel pubblica una guida per ogni passaggio da una versione alla successiva, e nessuna da 6 a 13. Saltando più versioni le modifiche si sommano e non si capisce quale ha rotto cosa, quindi procediamo una major alla volta.
Pacchetti di terze parti fermi
Ogni pacchetto deve avere una versione compatibile con la nuova major, e alcuni sono stati abbandonati. Con composer why-not troviamo quelli che bloccano il passaggio e li aggiorniamo, sostituiamo o eliminiamo all’inizio.
Pochi test o nessuno
Una serie di aggiornamenti senza test è una scommessa ripetuta a ogni versione. Prima di toccare il framework scriviamo test HTTP su login, form, checkout, API, code e comandi pianificati.
Il passaggio da PHP 7 a PHP 8
Oltre al framework cambia il comportamento del linguaggio, dai confronti tra numeri e stringhe agli avvisi promossi a eccezioni. Lo facciamo su una versione di Laravel che si conosce bene, separato da ogni altro aggiornamento.
Le modifiche ad alto impatto
Helper globali rimossi in Laravel 6, factory diventate classi in Laravel 8, Symfony Mailer e Flysystem 3 in Laravel 9, migrazioni di colonne in Laravel 11. Le guide le classificano per impatto e le verifichiamo una per una.
Il nostro intervento.
Passo dopo passo.
Se la migrazione richiede tempo, nel frattempo teniamo protetto il PHP in uso con il backport delle patch di sicurezza.
- 01INVENTARIO
Inventario e matrice
Elenchiamo versione di Laravel, PHP, pacchetti diretti e versioni disponibili per ciascuno. Ne esce una matrice che fissa l’ordine dei passaggi di Laravel e di PHP fino alla versione supportata.
- 02STAGING
Test prima del framework
Scriviamo test HTTP sui percorsi che contano per l’azienda e aggiungiamo l’analisi statica. Su ogni passaggio i test girano in un ambiente di prova con la stessa versione di PHP della produzione.
- 03UPGRADE
Una major alla volta
Su un ramo dedicato aggiorniamo le dipendenze indicate dalla guida, applichiamo le modifiche, lanciamo i test e correggiamo. Confrontiamo anche la configurazione con lo scheletro
laravel/laraveldella nuova versione. - 04RILASCIO
Rilascio e ponte
Rilasciamo con Ansible almeno nei punti in cui cambia PHP, con un piano di rollback che include le migrazioni del database. Intanto il backport delle patch di sicurezza protegge il PHP fuori supporto.
Per approfondire.
Aggiornare Laravel di più major: strategia, ordine e test
Come aggiornare un’applicazione Laravel rimasta indietro di più versioni: il ciclo di supporto, una versione principale alla volta, l’alternanza con gli aggiornamenti di PHP, i test da scrivere prima e le dipendenze da sbloccare.
Leggi l’approfondimentoAnalisi statica per la migrazione: PHPCompatibility, PHPStan e Rector in pratica
Come trovare i problemi di una migrazione a PHP 8 prima di cambiare versione: cosa fanno PHPCompatibility, Rector e PHPStan, come configurarli su un progetto legacy, in quale ordine usarli e cosa resta da verificare con i test.
Leggi l’approfondimentoDa PHP 5 a PHP 8: le funzioni rimosse che bloccano il tuo codice
Quali funzioni sono sparite in PHP 7.0 e in PHP 8.0, con cosa si sostituiscono, quali cambiamenti di comportamento rompono il codice senza errori evidenti e come fare l’inventario completo prima di iniziare la migrazione.
Leggi l’approfondimentoPrima di iniziare.
Le domande che ci fanno più spesso su Laravel e PHP.
Quanto dura ogni passaggio di versione?
Le guide ufficiali stimano tempi brevi per un’applicazione standard, da pochi minuti a un’ora per passaggio. Un’applicazione reale, con molti pacchetti e personalizzazioni, richiede di più, ma il lavoro resta diviso in unità che si possono pianificare e rilasciare.
Va rilasciata in produzione ogni versione intermedia?
Non è obbligatorio. Conviene farlo almeno nei punti in cui cambia PHP, perché il server va comunque aggiornato e un rilascio intermedio riduce le modifiche che arrivano insieme in produzione.
Laravel Shift può fare il lavoro al posto nostro?
Shift è un servizio della comunità citato dalle guide, che automatizza buona parte delle modifiche meccaniche e fa risparmiare tempo. La revisione del risultato, le dipendenze e i test restano comunque necessari.
Quali versioni di Laravel sono supportate oggi?
A novembre 2026 ricevono correzioni solo Laravel 12, in sola sicurezza fino al 24 febbraio 2027, e Laravel 13, che richiede almeno PHP 8.3 e riceve correzioni di sicurezza fino al 17 marzo 2028.
Aggiorniamo
il tuo progetto.
Indicaci versione della piattaforma, versione di PHP e sistema operativo. Ti risponderemo con una prima valutazione del percorso di upgrade e di cosa serve per arrivarci.
Richiedi una valutazioneLunedì – venerdì · 09:30 – 19:30
+39 340 985 4556 ↗