Da Joomla 3 a Joomla 5: estensioni, template e plugin di retrocompatibilità

Il percorso da Joomla 3 a Joomla 5 passa dalla 3.10 e dalla 4.4: come preparare estensioni e template, cosa fa il plugin Backward Compatibility, quali versioni di PHP servono e perché nel 2026 conviene guardare già a Joomla 6.

Copertina con il logo php∞, la categoria Migrazione CMS, il titolo Da Joomla 3 a Joomla 5 e il numero 33

Molti siti istituzionali, portali di associazioni e intranet aziendali sono ancora su Joomla 3. Funzionano, e chi li gestisce rimanda l’aggiornamento perché sa che non sarà un clic: il template è stato personalizzato, alcune estensioni non esistono più, qualche funzione è stata scritta su misura anni fa. Intanto il sito resta su una serie senza patch dall’agosto 2023 e, quasi sempre, su una versione di PHP altrettanto vecchia.

In questo articolo vediamo il percorso ufficiale da Joomla 3 a Joomla 5, le tappe obbligate, come preparare estensioni e template e cosa fa davvero il plugin di retrocompatibilità introdotto con Joomla 5. Guardiamo anche al calendario, perché a ottobre 2026 Joomla 5 è già in sola sicurezza e Joomla 6 è la serie corrente.

Le date e le versioni di PHP

Il progetto Joomla ha chiuso il supporto della serie 3 nell’agosto 2023 e quello della serie 4 nell’ottobre 2025. Secondo la roadmap ufficiale, Joomla 5, uscito il 17 ottobre 2023, ha concluso il supporto alle correzioni di bug il 13 ottobre 2026 e riceve solo correzioni di sicurezza fino al 12 ottobre 2027. Joomla 6, uscito il 14 ottobre 2025, è supportato per i bug fino all’ottobre 2028 e per la sicurezza fino all’ottobre 2029.

Ogni salto alza anche la versione minima di PHP. Joomla 4 richiede almeno PHP 7.2.5, Joomla 5 almeno PHP 8.1, con 8.3 consigliato, e Joomla 6 almeno PHP 8.3, con 8.4 consigliato, come indicano i requisiti tecnici del manuale. Per un sito Joomla 3 su PHP 5.6 o 7.x l’aggiornamento del CMS e quello di PHP vanno quindi pianificati insieme.

Percorso a cinque tappe da sinistra a destra. Joomla 3.x, fuori supporto da agosto 2023, PHP minimo 5.3.10, template Protostar, Bootstrap 2 e MooTools. Joomla 3.10, tappa obbligata, fuori supporto da agosto 2023, con il Pre-Update Check delle estensioni e il canale Joomla Next. Joomla 4.4, tappa intermedia, fuori supporto da ottobre 2025, PHP minimo 7.2.5, template Cassiopeia e Atum, Bootstrap 5. Joomla 5.4, la meta del titolo, in sola sicurezza fino a ottobre 2027, PHP minimo 8.1 e plugin Backward Compatibility. Joomla 6.x, serie corrente, supporto attivo fino a ottobre 2028, PHP minimo 8.3 e plugin Backward Compatibility 6. Sotto, il salto da 3.10 a 4.4 è indicato come il più impegnativo
Da Joomla 3 non si arriva a Joomla 5 in un solo passaggio: le tappe 3.10 e 4.4 sono obbligate.

Questo cambia il modo di leggere il titolo. Joomla 5 resta una meta valida, perché è supportato per un altro anno e il passaggio a Joomla 6 da lì è molto più leggero. Chi parte oggi da Joomla 3 dovrebbe però mettere nel progetto anche l’ultimo salto, oppure arrivarci subito se le estensioni lo permettono.

Perché non si può saltare direttamente

L’aggiornamento di Joomla passa dal componente Joomla Update e procede per versioni successive. Da una qualsiasi Joomla 3 si aggiorna prima all’ultima 3.10, che contiene il controllo di compatibilità per la serie successiva. Dalla 3.10 si passa a Joomla 4, poi si aggiorna fino alla 4.4, e solo da lì si passa a Joomla 5. Ogni tappa esegue gli script di aggiornamento del database: saltarne una lascia la struttura delle tabelle incoerente.

Il salto più impegnativo è il primo, da 3.10 a 4. Joomla 4 è stato in larga parte riscritto: nuova interfaccia di amministrazione, nuovo template del sito, Bootstrap 5 al posto di Bootstrap 2, rimozione di MooTools, modalità strict di MySQL attiva per impostazione predefinita. Il passaggio da 4.4 a 5 è molto più morbido, proprio grazie al plugin di retrocompatibilità.

Prima di tutto l’inventario

Prima di toccare il sito serve un elenco completo delle estensioni installate, con versione e autore. Si può ricavare dal pannello, alla voce di gestione delle estensioni, oppure direttamente dal database. La query seguente elenca le estensioni non distribuite con il core, leggendo i dati dal manifest salvato da Joomla:

# Estensioni di terze parti con tipo, versione e autore
# (sostituisci jos_ con il prefisso delle tabelle del tuo sito)
mysql -u utente -p nome_database -e "
  SELECT type, element, folder, enabled,
         JSON_UNQUOTE(JSON_EXTRACT(manifest_cache, '$.version')) AS versione,
         JSON_UNQUOTE(JSON_EXTRACT(manifest_cache, '$.author'))  AS autore
  FROM jos_extensions
  WHERE manifest_cache NOT LIKE '%Joomla! Project%'
  ORDER BY type, element;"

# Versione di PHP usata dalla riga di comando (verifica anche quella del sito)
php -v

Per ogni voce vanno annotati tre dati: se è davvero usata, se esiste una versione compatibile con Joomla 4 e 5, e chi l’ha sviluppata. Le estensioni installate e mai usate si rimuovono prima di iniziare: ogni componente in meno è un problema in meno.

Le estensioni

Il Pre-Update Check

Joomla 3.10 aggiunge al componente Joomla Update un controllo preliminare. Impostando il canale di aggiornamento sulla versione successiva, la pagina mostra se il server soddisfa i requisiti della nuova serie e, per ogni estensione, se lo sviluppatore ha dichiarato la compatibilità. Lo stesso controllo è presente nella 4.4 per il passaggio a Joomla 5. È un buon punto di partenza, ma si basa sulle informazioni pubblicate dagli sviluppatori: un’estensione segnata come compatibile va comunque provata sul sito reale, e una con stato sconosciuto non è necessariamente incompatibile.

Estensioni abbandonate e sviluppi su misura

Le estensioni commerciali diffuse hanno quasi sempre una versione per Joomla 4 e 5, a volte con una licenza nuova. I problemi veri sono due. Il primo sono le estensioni abbandonate: vanno sostituite con un’alternativa attiva, e il lavoro comprende la migrazione dei loro dati. Il secondo sono i componenti scritti su misura: un componente Joomla 3 usa le classi della vecchia architettura MVC e spesso funzioni di PHP rimosse nelle versioni 8. Va portato alla struttura di Joomla 4 e 5, con namespace e service provider, e al tempo stesso reso compatibile con PHP 8. Le note di aggiornamento ufficiali, dalla 3.10 alla 4.0 in avanti, elencano le modifiche da fare per ogni versione.

Il template

Il template è la parte che i visitatori vedono, ed è quella che quasi sempre va rifatta. I template di Joomla 3 sono costruiti su Bootstrap 2 o su framework di terze parti legati a quella generazione, e i loro override dei layout producono il markup di Joomla 3. In Joomla 4 e 5 il template del sito predefinito è Cassiopeia, basato su Bootstrap 5, e quello di amministrazione è Atum.

Tabella con quattro colonne: elemento, Joomla 3, Joomla 5, cosa fare. Template del sito: Protostar con Bootstrap 2 diventa Cassiopeia con Bootstrap 5, serve un nuovo template o un template figlio di Cassiopeia. Template di amministrazione: Isis diventa Atum, nessun intervento. Override dei layout: stessa struttura nella cartella html ma nuovo markup, da riscrivere. JavaScript: jQuery e MooTools lasciano il posto al Web Asset Manager e a ES6, gli script personalizzati vanno rivisti. Estensioni: le API di Joomla 3 lasciano il posto a namespace e service provider, serve la versione per Joomla 5 o una sostituzione. Database: le date 0000-00-00 tollerate diventano modalità strict con date NULL, le query personalizzate vanno verificate. PHP: da 5.3.10 a 8.1 per Joomla 5, il codice personale va portato a PHP 8
Template, override e codice su misura sono le voci che richiedono più lavoro.

Le strade sono tre: adottare la versione per Joomla 5 del template commerciale in uso, se il fornitore la offre; creare un template figlio di Cassiopeia, funzione disponibile da Joomla 4.1, e ricostruire lì grafica e override; oppure sviluppare un template nuovo. In tutti i casi gli override dei layout vanno riscritti, perché il markup dei componenti è cambiato. Il passaggio di template è anche il momento per verificare accessibilità e prestazioni, che Bootstrap 5 e il Web Asset Manager rendono più semplici da curare.

Il plugin di retrocompatibilità

Joomla 5 ha introdotto il plugin Behaviour – Backward Compatibility, pensato per far funzionare su Joomla 5 il codice scritto per Joomla 4. Secondo la documentazione ufficiale ha tre opzioni attivabili separatamente: gli alias dei vecchi nomi delle classi, uno strato di compatibilità per gli asset JavaScript ES5 e uno per gli asset rimossi. Nell’aggiornamento dalla 4.4 alla 5.0 il plugin viene attivato con tutte le opzioni.

Il plugin è uno strumento di transizione e va trattato come tale. Permette di arrivare su Joomla 5 senza riscrivere subito ogni estensione, ma il codice che dipende da esso usa API deprecate, destinate a sparire. Con Joomla 6 il meccanismo si ripete con un plugin nuovo, Behaviour – Backward Compatibility 6, che secondo il manuale deve essere installato e attivo per aggiornare dalla 5.4 alla 6. La sequenza corretta è quindi questa:

  1. aggiornare a Joomla 5 con il plugin attivo;
  2. verificare che il sito funzioni in ogni sua parte;
  3. disattivare le opzioni del plugin una alla volta, su una copia del sito, e annotare cosa smette di funzionare;
  4. aggiornare o correggere le estensioni coinvolte;
  5. a quel punto il passaggio a Joomla 6 diventa un aggiornamento di routine.

Un piano di lavoro

Per un sito di medie dimensioni il lavoro si organizza in fasi, sempre su una copia separata dalla produzione:

  • copia del sito su un ambiente di prova, con file e database completi;
  • pulizia: estensioni inutilizzate, utenti obsoleti, contenuti cestinati;
  • aggiornamento alla 3.10 e lettura del Pre-Update Check;
  • passaggio a Joomla 4.4 con il template predefinito attivo, per isolare i problemi delle estensioni da quelli del template;
  • passaggio a Joomla 5 e, se il progetto lo prevede, a Joomla 6;
  • nuovo template e override, verifica delle pagine principali e dei moduli;
  • prova completa di form, ricerche, aree riservate e integrazioni;
  • messa in produzione con un breve blocco delle modifiche ai contenuti e il PHP del server già aggiornato.

Se la migrazione richiede mesi e il sito Joomla 3 gira su un PHP fuori supporto, la produzione va protetta nel frattempo: il backport delle patch di sicurezza sul pacchetto PHP in uso chiude le vulnerabilità note del motore senza toccare il sito. Le considerazioni generali sul passaggio dei CMS a PHP 8 sono raccolte nell’articolo su come migrare un CMS a PHP 8, e il nostro servizio di migrazione applicativa copre anche Joomla.

In conclusione

Da Joomla 3 a Joomla 5 si passa per tappe obbligate, l’ultima 3.10 e la 4.4, e ogni salto alza la versione minima di PHP fino alla 8.1. Il passaggio più pesante è quello verso Joomla 4, dove cambiano template, JavaScript, architettura delle estensioni e comportamento del database. Il Pre-Update Check aiuta a capire quali estensioni sono pronte, il plugin Backward Compatibility rende più morbido l’arrivo su Joomla 5 ma va disattivato progressivamente, perché il codice che ne dipende è destinato a rompersi. A ottobre 2026 Joomla 5 è in sola sicurezza fino all’ottobre 2027: chi parte adesso da Joomla 3 fa bene a includere nel progetto anche il passaggio a Joomla 6, e a proteggere il sito attuale finché la migrazione non è completata.

IL PROSSIMO PASSO

Mettiamo
in sicurezza.

Indicaci versione di PHP, sistema operativo e cosa ti preoccupa. Ti risponderemo con una valutazione dell’esposizione e una proposta di intervento.

Richiedi supporto

Ti porta al modulo di richiesta, in quattro passi.

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 ↗