AGGIORNAMENTO E UPGRADE · SYMFONY

Symfony su PHP 8.
Da una LTS all’altra.

Aggiorniamo le applicazioni Symfony passando da una versione LTS alla successiva, correggendo le deprecazioni a ogni tappa e portando PHP alla versione richiesta dal ramo di arrivo.

Per chi ha un’applicazione su Symfony 2.8, 3.4, 4.4 o 5.4 e deve arrivare a un ramo supportato e a PHP 8. Pianifichiamo le tappe, aggiorniamo bundle e codice e rilasciamo senza fermare il servizio.

PERCORSO DI UPGRADE

Dal ramo che hai.
Al ramo supportato.

Ogni versione principale di Symfony rimuove ciò che la precedente aveva deprecato. Il percorso sicuro passa quindi da una LTS all’altra, con il codice ripulito dalle deprecazioni prima di ogni salto e PHP aggiornato quando il ramo successivo lo richiede.

  1. 01Symfony 2.8 o 3.4 LTSda PHP 5.3.9 / 5.5.9

    Fuori supporto dal 2019 e dal 2021, spesso ancora su PHP 5.6 o 7.x.

  2. 02Symfony 4.4 LTSda PHP 7.1.3

    Fuori supporto da novembre 2023, ultima tappa prima della 5.x.

  3. 03Symfony 5.4 LTSda PHP 7.2.5

    Solo correzioni di sicurezza, fino a febbraio 2029.

  4. 04Symfony 6.4 LTSda PHP 8.1

    Correzioni di bug fino a novembre 2026, sicurezza fino a novembre 2027.

  5. 05Symfony 7.4 LTSda PHP 8.2

    LTS attuale, bug fino a novembre 2028 e sicurezza fino a novembre 2029.

VERSIONI E REQUISITI PHP

Versioni e PHP.
Ramo per ramo.

Le versioni LTS di Symfony ricevono correzioni per tre anni e correzioni di sicurezza per almeno un anno in più. Date e requisiti sono quelli del calendario ufficiale.

VersionePHP minimoFine del supportoStato a novembre 2026
Symfony 2.8 LTSPHP 5.3.9Novembre 2019Fuori supporto
Symfony 3.4 LTSPHP 5.5.9Novembre 2021Fuori supporto
Symfony 4.4 LTSPHP 7.1.3Novembre 2023Fuori supporto
Symfony 5.4 LTSPHP 7.2.5Sicurezza fino a febbraio 2029Solo correzioni di sicurezza
Symfony 6.4 LTSPHP 8.1Sicurezza fino a novembre 2027Fine delle correzioni di bug
Symfony 7.4 LTSPHP 8.2Sicurezza fino a novembre 2029Supportato
Symfony 8.1PHP 8.4Gennaio 2027Stabile corrente, non LTS

Fonti: Calendario delle versioni di Symfony · Aggiornare Symfony di una versione principale. La matrice dei rami di PHP con le distribuzioni Linux è nella pagina Versioni PHP.

COSA TROVIAMO DI SOLITO

Cosa blocca l’upgrade.
E come lo sblocchiamo.

Symfony offre un percorso di aggiornamento ordinato. Le difficoltà nascono quando le tappe sono state saltate per anni e le deprecazioni si sono accumulate.

Deprecazioni accumulate

Ogni versione principale rimuove ciò che era deprecato nella precedente. Le facciamo emergere con symfony/phpunit-bridge e con il profiler, e le correggiamo sull’ultima minore del ramo prima di salire.

Bundle di terze parti fermi

Molti progetti dipendono da bundle che non seguono le nuove versioni di Symfony. Cerchiamo la versione compatibile, un sostituto mantenuto oppure portiamo il codice necessario dentro l’applicazione.

Struttura e configurazione vecchie

Dalla 4.0 Symfony usa Flex, le recipe e una struttura di cartelle diversa da quella della 2.x e della 3.x. Allineiamo configurazione e cartelle allo scheletro attuale, una parte alla volta.

PHP da aggiornare insieme

Symfony 6.4 richiede almeno PHP 8.1 e la 7.4 almeno PHP 8.2. Coordiniamo ogni salto del framework con quello di PHP, così l’applicazione resta sempre su una combinazione provata.

Pochi test automatici

Senza test ogni tappa diventa un rischio. Prima di salire scriviamo test funzionali sui percorsi critici, come login, ordini e pagamenti, e li rieseguiamo dopo ogni passaggio.

IL METODO

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.

  1. 01INVENTARIO

    Inventario e matrice

    Censiamo versione di Symfony, bundle, librerie Composer e versione di PHP. Ne ricaviamo una matrice di compatibilità e il numero di tappe LTS necessarie.

  2. 02STAGING

    Ambiente di prova reale

    Prepariamo un ambiente di prova con l’applicazione reale e una copia dei dati. Lì raccogliamo le deprecazioni e applichiamo le regole di Rector per Symfony, rivedendo ogni modifica.

  3. 03UPGRADE

    Da LTS a LTS, con i test

    Saliamo una versione LTS alla volta, aggiornando le recipe con composer recipes:update. Dopo ogni tappa eseguiamo i test e rilasciamo se tutto è in ordine.

  4. 04RILASCIO

    Rilascio e ponte di sicurezza

    Rilasciamo con Ansible e un piano di rollback provato. Se le tappe richiedono mesi, il backport delle patch di sicurezza protegge il PHP in uso nel frattempo.

DOMANDE FREQUENTI

Prima di iniziare.

Le domande che ci fanno più spesso su Symfony e PHP.

Posso saltare direttamente da Symfony 3.4 alla 7.4?

Sconsigliamo il salto diretto. Ogni versione principale rimuove le funzioni deprecate nella precedente, e solo passando dalle LTS intermedie le deprecazioni restano visibili e correggibili. Le tappe intermedie possono restare brevi e non sempre vanno in produzione.

Fino a quando è supportato Symfony 5.4?

Secondo il calendario ufficiale, Symfony 5.4 riceve correzioni di sicurezza fino a febbraio 2029, mentre le correzioni di bug sono terminate a novembre 2024. È una base sicura per chi deve restare su PHP 7.x ancora per un po’.

Rector aggiorna Symfony da solo?

Rector ha regole che correggono in automatico molte deprecazioni di Symfony e del PHP. Applica però trasformazioni sulla sintassi, quindi ogni modifica va rivista e provata. Lo usiamo per il lavoro ripetitivo e interveniamo a mano sul resto.

Meglio fermarsi alla 7.4 o andare sulla 8.x?

Per un’applicazione aziendale consigliamo di solito una versione LTS, oggi la 7.4, supportata per la sicurezza fino a novembre 2029. Le versioni 8.x restano supportate pochi mesi ciascuna e richiedono aggiornamenti frequenti.

IL PROSSIMO PASSO

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 valutazione
PHP LEGACY · MANAGED SERVER S.R.L.info@phplegacy.it +39 02 5656 9681

Lunedì – venerdì · 09:30 – 19:30

Urgenza in corso? Reperibilità H24
+39 340 985 4556 ↗