FCHEADERJSPLACEHOLDER

Verso Adobe Commerce 2.4.4: PHP 8.1 e la fine di Zend Framework

Ogni tanto arriva una release che non è solo un elenco di feature nuove, ma un punto di svolta tecnico. Per chi lavora su Adobe Commerce e Magento Open Source, la 2.4.4 annunciata da Adobe è esattamente questo: la sua disponibilità generale è attesa per aprile 2022, e sarà la prima versione a portare due cambiamenti che tocchiamo con mano tutti i giorni, il supporto a PHP 8.1 e l’addio definitivo a Zend Framework, sostituito da Laminas.

Nel 2011 ho cominciato a lavorare su Magento 1, e negli anni ho visto passare parecchie migrazioni. Alcune indolori, altre parecchio meno. Quello che voglio fare qui non è ripetere la changelog: è dirvi cosa penso davvero di questa release e perché, dal mio punto di vista, sarà l’upgrade più impegnativo degli ultimi anni.

Cosa sappiamo della 2.4.4 in arrivo

Mettiamo in fila i tre pilastri, così ne parliamo con ordine.

Supporto a PHP 8.1

La 2.4.4 sarà compatibile con PHP 8.1. Non è un dettaglio da poco. PHP 8.0 e 8.1 hanno introdotto cambiamenti al linguaggio che rendono più severo ciò che prima passava in silenzio: gestione più rigida dei tipi, deprecation su comportamenti dinamici, novità come gli enum e i readonly properties. Per la piattaforma è un passo di igiene necessario, perché resta allineata a una versione di PHP supportata e con security patch attive. Per chi ha un progetto reale in produzione, però, significa che ogni riga di codice custom e ogni estensione di terze parti va verificata contro un runtime più esigente.

La fine di Zend Framework e l’arrivo di Laminas

Questo è il punto che mi interessa di più. Per anni Magento ha portato dentro pezzi di Zend Framework 1, ormai a fine vita, e componenti di Zend Framework più recenti. Zend Framework come progetto è confluito in Laminas sotto l’ombrello della Linux Foundation, e la 2.4.4 completa la transizione: i namespace Zend\ lasciano il posto a Laminas\. Sulla carta è una sostituzione quasi uno-a-uno. Nella pratica, ogni estensione che istanzia classi Zend, che fa use Zend\... o che si appoggia a librerie come Zend_Mail o Zend_Db andrà toccata. E ce ne sono, credetemi, più di quante ci si aspetti.

Nuovo storefront e PWA

Sul fronte frontend, Adobe continua a spingere sull’approccio headless e su PWA Studio con il tema di riferimento Venia. Non è un obbligo — il Luma theme tradizionale resta — ma la direzione è chiara: il futuro dello storefront è disaccoppiato dal backend e costruito su GraphQL. Chi sta ragionando su un refresh del frontend farebbe bene a guardare qui prima di investire ancora pesantemente sul tema Luma.

Perché sarà un upgrade tecnicamente impegnativo

Secondo me il rischio non è la piattaforma in sé, che Adobe testa a fondo. Il rischio è tutto ciò che ci abbiamo appeso sopra. Lo dico da chi le migrazioni le fa, non le racconta soltanto.

Il primo collo di bottiglia sono le estensioni. In un progetto tipico di un merchant mid-market conto tranquillamente venti, trenta moduli di terze parti: metodi di pagamento, spedizioni, ERP connector, gestione feed, tool di marketing. La 2.4.4 richiede che ognuno di questi sia compatibile contemporaneamente con PHP 8.1 e con Laminas. Basta un solo modulo critico non ancora aggiornato dal vendor — magari proprio il connector verso il gestionale — per bloccare l’intera migrazione. E su questo il team di sviluppo può fare poco: dipende dai tempi di terzi.

Il secondo è il codice custom che nessuno ha più voglia di guardare. Su un progetto seguito da qualche anno mi sono trovato con customizzazioni scritte quando PHP 7.2 era la norma. Codice che assumeva conversioni implicite di tipo, che passava null dove PHP 8.1 ora si aspetta un tipo preciso, che usava sintassi deprecate. Nulla di drammatico preso singolarmente, ma sommato fa una lista di interventi lunga, e va testato tutto.

Il terzo, il più insidioso, è la ricerca dei riferimenti a Zend nascosti. Non sempre sono espliciti. A volte una libreria di terze parti tira dentro Zend come dipendenza transitiva, e te ne accorgi solo quando qualcosa smette di funzionare in staging. Per questo dico che la 2.4.4 non è un aggiornamento che si fa “al volo il venerdì pomeriggio”. Va pianificato.

Come mi preparo

Non ho una ricetta magica, ho un metodo che ho affinato migrazione dopo migrazione. Lo condivido volentieri.

  1. Inventario delle estensioni e verifica compatibilità. Prima cosa: la lista completa dei moduli di terze parti e, per ognuno, una domanda secca al vendor — esiste una versione compatibile con 2.4.4, PHP 8.1 e Laminas, e con quale timeline? Questo va fatto ora, non ad aprile.
  2. Ambiente di staging con PHP 8.1. Faccio girare l’applicazione su PHP 8.1 il prima possibile per far emergere errori e deprecation. Meglio scoprirli in un ambiente controllato che in produzione.
  3. Grep sistematico dei namespace Zend. Cerco Zend\ e Zend_ in tutto il codice custom e, dove posso, nelle dipendenze. Ogni occorrenza diventa una voce di backlog.
  4. Static analysis. Strumenti come PHPStan o PHPCompatibility aiutano a intercettare i problemi di tipizzazione e le API deprecate senza dover eseguire ogni singolo flusso a mano.
  5. Piano di test sui percorsi critici. Checkout, pagamento, sincronizzazione con l’ERP, calcolo spedizioni. Sono i punti dove un errore costa vendite reali, e sono i primi che voglio vedere verdi.

La mia opinione, netta: chi è ancora su una 2.3.x o su una PHP 7.x dovrebbe iniziare a muoversi appena la 2.4.4 sarà disponibile, non aspettare l’ultimo giorno utile di supporto. Non perché “bisogna essere aggiornati” come mantra, ma perché più si accumula debito tecnico, più la migrazione diventa costosa e rischiosa. L’ho visto succedere: rimandare non rende il problema più piccolo, lo rende solo più caro.

C’è anche il rovescio della medaglia, ed è giusto dirlo. Passare a PHP 8.1 porta benefici concreti di performance e un runtime supportato per anni; ripulire il codice da Zend è l’occasione per togliere di mezzo customizzazioni fragili che ci portiamo dietro da troppo tempo. Un upgrade impegnativo, sì, ma anche un’occasione di manutenzione che raramente ci si concede in condizioni normali.

Mini-FAQ

Quando esce Adobe Commerce 2.4.4?
La disponibilità generale è attesa per aprile 2022, come annunciato da Adobe.

La 2.4.4 supporta PHP 8.1?
Sì. Adobe Commerce 2.4.4 sarà la prima versione a supportare PHP 8.1.

Cosa succede a Zend Framework nella 2.4.4?
Zend Framework viene sostituito da Laminas: i namespace Zend\ diventano Laminas\. Estensioni e codice custom che referenziano Zend vanno adeguati.

Perché la migrazione alla 2.4.4 è considerata complessa?
Perché richiede che tutte le estensioni di terze parti e il codice custom siano compatibili contemporaneamente con PHP 8.1 e con Laminas. Un solo modulo non aggiornato può bloccare l’intero upgrade.

Cosa cambia sul frontend?
Adobe continua a spingere su headless e PWA Studio. Il tema Luma tradizionale resta disponibile, ma la direzione strategica è lo storefront disaccoppiato basato su GraphQL.


Chi sono. Sono Fabio Canovi, mi occupo di Magento e Adobe Commerce dal 2011 e sono tra i primi professionisti in Italia certificati Adobe Commerce. Su questo blog racconto, dal punto di vista di chi ci mette le mani, dove sta andando l’e-commerce e cosa farne.

Condividi l'articolo:

Articoli correlati