Cos'è il framework Joomla e come si può utilizzare?
Quando le persone pensano a Joomla, spesso pensano al CMS Joomla, che è un ottimo sistema per la creazione di siti web. Ma Joomla è molto di più di un semplice CMS.
Sotto il cofano, c'è qualcos'altro: Il framework di Joomla.
Il framework Joomla è un gruppo di componeti PHP separati. Puoi anche usarli al di fuori di Joomla CMS! Ad esempio in app personalizzate, strumenti CLI, microservizi o altri progetti PHP.
Pacchetti di Joomla Framework
Joomla Framework è modulare. Significa che ha molti piccoli pacchetti. Ognuno fa un lavoro. Ad esempio:
- Connessione al database
- Gestione HTTP
- Funzioni del file system
- Eventi di sistema
È possibile utilizzare ciascuno di loro da solo. Non hai bisogno del CMS completo di Joomla. Puoi installarli con Composer di Packagist. Ad esempio, utilizzare solo il pacchetto Joomla Database in un progetto Symfony o Laravel. Non è necessario installare Joomla CMS.
Librerie di PHP
Quando sviluppi codice in PHP, non devi scrivere tutto da zero. Ad esempio, potresti voler esportare i dati in un PDF. Non reinventare la ruota e programmare la tua libreria PDF, ma usa invece una libreria già esistente. È possibile utilizzare "composer" per integrare le librerie PHP fatte da altri nei propri progetti. Queste librerie sono testate e aggiornate.
Packagist.org
Per i pacchetti della libreria PHP c'è un sito web chiamato Packagist. È possibile trovare tutti i tipi di pacchetti lì, compresi i pacchetti Joomla. Basta cercare https://packagist.org/?query=joomla.
Composer
Composer è lo strumento per gestire i pacchetti PHP. Ti aiuta a installare librerie. Basta usare:
composer riequire joomla/http
Composer scaricherà la versione corretta in una cartella chiamata /vendor/. Gestisce anche altri pacchetti necessari e imposta il caricamento automatico per te. Nel file PHP è sufficiente utilizzare quanto segue per caricare tutte le librerie:
require __DIR__ . '/vendor/autoload.php';
Librerie all'interno di Joomla
Joomla utilizza i propri pacchetti Framework e anche altre librerie PHP. Questi sono già inclusi in Joomla nella cartella /libraries/vendor/
Non è necessario aggiornarli da soli. In realtà, non dovresti aggiornarli tu stesso! Perché questo potrebbe rendere il CMS base di Joomla diverso e quando causa errori, sarebbe difficile da risolvere. Gli sviluppatori di Joomla mantengono i pacchetti in /libraries/vendor/ per te. Quando creano i pacchetti di installazione e aggiornamento di Joomla, includeranno anche quelle librerie. Sicuro e facile.
Utilizzo delle librerie PHP nella propria estensione
Se crei la tua estensione, puoi usare anche composer per usare librerie PHP extra. Ma non metterli nella cartella /libraries/vendor/ di Joomla!
Tale cartella è gestita da Joomla e può essere sovrascritta con aggiornamenti. Invece, metti le librerie nella cartella delle estensioni: /components/com_mycomponent/vendor/
In questo modo controlli la versione ed eviti anche conflitti con Joomla o altre estensioni.
Utilizzo dei pacchetti di Joomla Framework senza Joomla CMS
In realtà, per i piccoli progetti potrebbe non essere necessario il CMS completo di Joomla. Potresti usare un po 'di PHP insieme ad alcuni pacchetti di Joomla Framework. Vai a Packagist, trova un pacchetto, installalo con Composer:
composer require joomla/registry
Nel tuo codice PHP:
require DIR . '/vendor/autoload.php';
use Joomla\Registry\Registry;
$registry = new Registry;
$registry->set('welcome', 'Hello Joomla world!');
echo $registry->get('welcome'); // Hello Joomla world!
Semplice e pulito.
Esempio: Visualizzare gli articoli Joomla headless utilizzando il framework Joomla
Per dimostrare come utilizzare Joomla Framework, ho creato un esempio per visualizzare articoli di una categoria specifica in un'applicazione PHP standalone, senza utilizzare il CMS completo di Joomla:
https://github.com/pe7er/db8-joomla-framework-example
Il codice utilizza il pacchetto di database di Joomla per connettersi a un database Joomla esistente e recuperare direttamente il contenuto, il che è molto bello per casi d'uso headless o in stile microservizio. Il mio esempio si concentra sull'utilizzo diretto di Joomla Framework, senza fare affidamento sull'API dei servizi Web di Joomla o sull'ambiente CMS.
Caratteristiche
- Headless: Nessuna installazione di Joomla CMS è richiesta
- Utilizza i pacchetti di Joomla Framework tramite Composer
- Estrae gli articoli dalla tabella #__content
- Visualizzazione HTML responsive utilizzando Bootstrap 5
- Facile da configurare ed estendere
Requisiti
- PHP 8.1 o superiore
- Composer
- Un database Joomla 4.x o 5.x esistente
- Server Web con index.php accessibile
Installazione
- Clonare il repository:
git cloneQuesto indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. :pe7er/db8-joomla-framework-example.git
cd db8-joomla-framework-example - Installare le dipendenze con Composer:Configurazione
composer install - Copiare il file .env.example in .env e modificare le credenziali del database
Uso
- Dopo la configurazione, esegui l'app aprendo index.php nel tuo browser (tramite un server locale come Apache o il server integrato di PHP):
php -S localhost:8000 - In una visita del browser: http://localhost:8000
Dovresti vedere un elenco di articoli in stile Bootstrap dal tuo database Joomla.
Immagine del campione
Il mio semplice esempio di codice utilizza Joomla Framework Packages per recuperare articoli da una categoria specifica da un database Joomla. Nel mio ambiente di test la categoria conteneva 8 articoli di Joomla e sarebbe stata visualizzata in questo modo:

Riferimenti al framework Joomla
- Sito web: https://framework.joomla.org/
- Progetto GitHub: https://github.com/joomla-framework
- Pacchetti su Packagist: https://packagist.org/?query=joomla
Conclusione
Joomla Framework è un potente strumento nascosto, ma sconosciuto a molti sviluppatori. Se crei estensioni Joomla — o anche solo app PHP — puoi utilizzare questi pacchetti.
Benefici:
- Risparmio di tempo;
- Rendi il tuo codice migliore.
Tutto ciò di cui hai bisogno è Composer... e un po' di curiosità.
Migliorare e diffondere Joomla Framework?
Se vuoi contribuire a migliorare il Framework di Joomla:
- abbiamo bisogno di volontari per migliorare la documentazione per Joomla Framework
- Abbiamo bisogno di più sviluppatori per migliorare e mantenere i pacchetti di Joomla Framework
Alcuni articoli pubblicati sul Joomla Community Magazine rappresentano l'opinione personale o l'esperienza dell'Autore sul tema specifico e potrebbero non essere allineati alla posizione ufficiale del Progetto Joomla