Requisiti
Per seguire questo tutorial è necessario avere a disposizione Joomla! 4.x (attualmente versione Alpha 8).
Namespace
I namespace sono stato introdotti in PHP 5.3. Utilizzati da molto tempo in altri linguaggi di programmazione, queste piccole strutture aiutano a migliorare la chiarezza del codice.
I namespace sono aree separate nelle quali alcune cose logiche (nel nostro caso, classi, interfacce, funzioni e costanti) possono vivere. Queste aree forniscono incapsulazione del codice e prevengono conflitti nei nomi.
Vediamo come usare i namespace in Joomla 4. Utilizzeremo il file helper per questo scopo.
Struttura dei file
Creeremo/Modificheremo i seguenti file:
Helper/FooHelper.php
- Questo è il file che utilizzeremo come esempio. È necessario crearlo.mod_foo.php
- In questo file sarà necessario caricare il namespace.tmpl/default.php
- In questo file dimostreremo come è possibile visualizzare i dati di un helper.mod_foo.xml
- Creeremo una nuova cartella con un nuovo file. Ciò dovrà essere fatto durante l'installazione, pertanto dovremo specificarlo in questo file.
Creare Helper/FooHelper.php
La nostra nuova classe helper dovrebbe appartenere ad un namespace. Otteniamo questo con il codice seguente. È importante che questa riga sia all'inizio del file.
namespace Joomla\Module\Foo\Site\Helper;
Quindi creiamo una semplice classe con un semplice metodo. Ovviamente è possibile fare molto di più qui. Molti esempi sono visibili nei metodi del core di Joomla.
Il file Helper/FooHelper.php completo
Il codice per il file Helper/FooHelper.php
sarà simile a questo:
Modifica del file mod_foo.php
La nostra nuova classe helper è importata allo scope corrente all'inzio del file.
use Joomla\Module\Foo\Site\Helper\FooHelper;
Infine utilizza il file helper per verificare che sia caricata correttamente.
$test = FooHelper::getText($params, $app);
Il file mod_foo.php completo
Il codice per il file mod_foo.php
sarà simile a questo:
Modifica del file tmpl/default.php
In questo file è necessaria solo una piccola modifica per dimostrare nel frontend che il file di helper stia funzionando correttamente. Aggiungiamo il valore della variabile alla fine dell'output corrente.
Il file tmpl/default.php completo
Il codice per il file tmpl/default.php
sarà simile a questo:
Modifica del file mod_foo.xml
Innanzitutto è necessario aggiungere una riga, così che il namespace sia impostato automaticamente in Joomla. Dopo questa modifica, è necessario reinstallre il modulo. Una semplice modifica in un modulo già installato non è sufficiente. Se si sta sviluppando in locale è possibile anche eliminare il file libraries/autoload_psr4.php che sarà automaticamente creato nuovamente. Dopo l'inserimento e l'installazione, il namespace sarà riconosciuto dal loader JPATH_LIBRARIES . '/autoload_psr4.php'
.
Joomla dovrebbe copiare il file di helper nel corso dell'installazione del modulo. Quindi Joomla ha bisogno di conoscere il file helper, pertanto è necessario aggiungere la seguente riga al file XML.
Il file mod_foo.xml completo
Il codice per il file mod_foo.xml
sarà simile a questo:
Test del Modulo
Adesso è possibile comprimere tutti i file in un unico file zip ed installarlo attraverso Gestione Estensioni dal backend di Joomla.
Nel frontend sarà visibile il modulo visualizzato come nell'immagine seguente. Sarà visualizzato il testo proveniente anche dal file helper.
Conclusione
Come si può vedere, una volta che ci si addentra nei namespace, non sono così complicati. In grandi progetti possono portare notevoli beneifici. Tuttavia è consigliabile pianificare in anticipo i namespace, poiché potrebbero altrimenti risultare molto esigenti in termini di tempo.
I moduli di esempio per questo tutorial possono essere trovati qui.