Joomla 4 in movimento...

Joomla 4, la prossima versione major, è attivamente sviluppata dalla community di volontari. Sono successe un sacco di cose negli ultimi mesi!

Prima di raggiungere lo stato Beta (che significa un congelamento delle funzionalità), approfittiamo per fare il punto della situazione e condividere alcune informazioni importanti relative a:

  • Requisiti tecnici
  • Miglioramenti nel sistema di ricerca
  • Nuovo controllo sullo stile di codice

Un aumento dei Requisiti tecnici

L'industria del web si muove veloce e Joomla deve agire di conseguenza per restare al passo e soddisfare i propri utenti. Pertanto sono stati aumentati i requisiti tecnici per Joomla 4.

Dato che Joomla 4.0 ed il Joomla Framework 2.0 sono stati in sviluppo per diversi anni, è stato deciso di rivalutare le versioni software supportate per ottimizzare il CMS per i prossimi anni e seguire quello che gli utenti stanno già utilizzando (informazioni raccolte grazie agli utenti che attivano il plugin statistiche).

Versione minima di PHP 7.2

7.2 e 7.3 sono attualmente le uniche due versioni attivamente supportate di PHP, con PHP 5 non più supportato da Dicembre 2018 e PHP 7.1 che riceverà esclusivamente patch di sicurezza fino a Dicembre 2019. Quando Joomla 4 sarà rilasciata, la versione PHP supportata più vecchia, 7.2, avrà meno di un anno di supporto di sicurezza garantito. Questo consente al progetto di sfruttare i vantaggi come la crittografia sodium nativa di PHP senza un polyfill, così come le dichiarazioni del tipo void che saranno utili per le nuove interfacce in Joomla 4. Inoltre dalle statistiche è stato rilevato che gli utenti che utilizzano PHP 7.2 sono il doppio di quelli che utilizzano PHP 7.1.

Versione minima di MySQL 5.6

5.6, 5.7 e 8.0 sono le versioni attualmente supportate del database MySQL. La versione 5.5 ha raggiunto la fine del proprio ciclo di vita a Dicembre 2018, mentre MySQL 5.6 sarà supportato fino a Febbraio 2021. Da notare che la versione MySQL minima supportata potrà essere modificata durante il ciclo di vita di Joomla 4, se necessario, poiché in futuro potrebbe essere utile passare a MySQL 5.7 per poter utilizzare il tipo JSON nelle colonne MySQL.

Versione minima di PostgreSQL 11

Una nuova versione major di PostgreSQL viene rilasciata ogni anno e contiene nuove funzionalità Ogni tre mesi almeno la versione major riceve patch per correggere errori e problemi e, se necessario, vulnerabilità. Finora è stato complesso supportare tutte le versioni di PostgreSQL disponibili. Pertanto, per rendere Joomla 4 più stabile e poiché la metà degli utenti che utilizzano PostgreSQL sono già sulla versione 11, il progetto ha scelto di supportare solo la versione 11 e successive (PostgreSQL 11 concluderà il proprio ciclo di vita a Novembre 2023).

Rimosso il supporto a Internet Explorer

La decisione di eliminare il supporto per Internet Explorer è stata basata su alcuni criteri. Meno del 5% di utenti di internet navigano su internet con Internet Explorer. Il nuovo browser Edge (basato su Chromium) avrà un layer di compatibilità con IE che aiuterà a ridurre ulteriormente l'utilizzo di IE.

Significa che Joomla 4 non funzionerà su IE? Sì e No!

Il template di backend di Joomla 4 non supporterà Internet Explorer, pertanto potrebbe essere necessario utilizzare un altro browser per installare/gestire un sito web. Lo stesso vale per il template di frontend fornito con il core, Cassiopeia, dato che non supporterà i requisiti di IE, è possibile che ci siano dei problemi di visualizzazione. Tuttavia il problema può essere risolto sviluppando o installando un template che supporti Internet Explorer.

In che modo questo impatterà il codice del core?

Rimuovendo il supporto a PHP 5 ci sono numerose funzionalità e ottimizzazioni possibili nel codice. Molte di queste modifiche possono essere fatte senza impattare le API pubbliche esistenti, tuttavia, alcune funzionalità (per esempio, scalar type hinting) introdurrebbero interruzioni della compatibilità con le versioni precedenti, se accettate. Le seguenti politiche verranno adottate e adattate se necessario per Joomla 4.0 e Joomla Framework 2.0, sia per il codice esistente sia per quello nuovo:

  • Tutte le nuove classi ed i metodi nelle nuove major version potrebbero far uso di tutte le nuove funzionalità di PHP 7.2, inclusi gli scalar type hints e le return type declarations.
  • I metodi privati ed i metodi nelle classi finali (che non possono essere estesi per definizione) possono essere aggiornate per utilizzare il typing di PHP 7.2
  • I metodi pubblici e protetti nelle classi esistenti generalmente non avranno le proprie firme modificate se non quando la modifica migliori la comprensione e l'utilizzo del codice (per esempio, metodi che potrebbero utilizzare le firme variadic).
  • Il core ha eliminato l'utilizzo di complicati polyfills solo per supportare IE, per le variabili CSS e flexbox.

Un unico e migliorato sistema di Ricerca

In quanto versione Major, sono in corso di verifica tutte le estensioni ed i concetti per semplificare l'utilizzo di Joomla per gli utenti. Un problema di Joomla dalla versione 2.5 è stato la ricerca. Joomla 4.0 sarà un grande passo in avanti a riguardo.

Qual è il problema?

Per anni Joomla ha fornito due sistemi di ricerca. Il primo è Cerca (o com_search) che proviene dai tempi di Mambo e non è stato molto evoluto negli anni. L'altro è Smart Search (o com_finder) che è stato incluso in Joomla 2.5, ma non era stato "lucidato" al 100%. Due sistemi completamente separati per lo stesso compito non semplificano la vita agli utenti e spesso generano confusione. Senza menzionare il fatto che gli sviluppatori del core debbano mantenere entrambi i sistemi.

Qual è la differenza tra Cerca e Smart Search?

Cerca è un sistema molto semplice che chiama un gruppo di plugin per eseguire una ricerca nel database per i termini di ricerca e restituisce una serie di risultati. Ogni menzione dei termini di ricerca è ritrovata, ma il sistema può anche eseguire una ricerca sul termine esatto. Se si hanno molti dati e molti plugin di ricerca, è possibile avere dei problemi di performance sul sito. I risultati non sono ordinati, tuttavia il codice necessario per creare un plugin di questo tipo è veramente semplice.

Dall'altra parte, Smart Search è un sistema di ricerca basato su un indice. Utilizzare un indice ha notevoli benefici, ordinare i risultati per rilevanza, è possibile anche cercare varianti delle parole ed ha anche impatti più contenuti sulle performance. Il sistema di Smart Search è molto più potente ma richiede un po' di lavoro per costruire l'indice.

Cosa è stato fatto?

Nel corso dell'ultimo anno, Smart Search è stato sottoposto ad una revisione completa. Ne è stata migliorata la struttura ed il modo in cui Smart Search esegue la ricerca per incrementare le performance. Sono stati corretti alcuni bug noti da molto tempo e ripulito il sistema di tassonomia. Inoltre sono stati corretti molti dei bug sul supporto multilingua.

Con tutte queste modifiche, Smart Search fornirà i migliori risultati di ricerca. Pertanto è stato deciso di rimuovere il semplice sistema di ricerca (com_search) da Joomla 4.0.

Il progetto coglie l'occasione per ringraziare pubblicamente cloudaccess.net che ha parzialmente finanziato i miglioramenti nel sistema Smart Search.

Come passare da Cerca a Smart Search?

I due sistemi sono molto diversi e non esiste un vero e proprio processo di upgrade da uno all'altro con il click di un pulsante. Nel caso si utilizzi Cerca sul sito e si voglia passare a Smart Search, è necessario configurare il sistema. Si tratta di un'operazione più semplice di quanto sembri. Basta abilitare il plugin e creare un indice dei contenuti (è solo un click) e rendere disponibile il sistema di ricerca agli utenti crando una voce di menu o un modulo (o entrambe le cose).

Per ulteriori informazioni sul sistema Smart Search e su come impostarlo, è sufficiente fare click sul pulsante di Aiuto nel backend.

Il progetto Joomla incoraggia gli sviluppatori di estensioni ad iniziare a creare i plugin per Smart Search per le proprie estensioni il prima possibile per garantire la soddisfazione dei propri utenti.

Ma ho bisogno del vecchio sistema di ricerca!

Se proprio non vuoi passare a Smart Search, potrai sempre installare il vecchio sistema di ricerca come un'estensione separata sui siti Joomla 4. Il pacchetto sarà disponibile sul sito Download (downloads.joomla.org) e sarà mantenuto per il ciclo di vita di Joomla 4. In caso di aggiornamento da Joomla 3 a Joomla 4, il vecchio com_search non sarà rimosso - proprio come quando è stato rimosso Weblinks da Joomla 3.3.

Correzione automatica degli errori nello stile di codice

Dall'implementazione di PHP CodeSniffer 2.x deriva anche la possibilità di correggere automaticamente molti errori nello stile del codice. Gli sniff personalizzati nello standard di codice hanno aggiunto anche l'abilità alla correzione automatica. Questo miglioramento dovrebbe consentire agli sviluppatori di risparmiare tempo ed al progetto Joomla di garantire un codice aderente allo standard senza l'intervento manuale. È già in corso la migrazione a PHP CodeSniffer 3.x per assicurare l'utilizzo dell'ultima e migliore versione in Joomla 4.

Il progetto coglie l'occasione per ringraziare Walt Sorenson per il grande aiuto ed il tempo che ha dedicato al lavoro sul set di regole per codesniffer per Joomla. Rispettando lo spirito dell'Open Source, molti dei tweak di Joomla sono stati inviati anche al progetto Codesniffer.

La community di Joomla è impegnata per rendere Joomla 4 la migliore generazione. Le modifiche presentate sopra aiuteranno a rilasciare il prodotto con la miglior qualità possibile.