Mastering Joomla 1.5 Extension and Framework development – 4
Nel quarto capitolo del libro Mastering Joomla 1.5 Extension and Framework development vediamo come progettare la nostra estensione personalizzata.
Vediamo i punti più interessanti.
Classes e Helpers
E’ prevista la possibilità di creare classi completamente personalizzate, che non estendono le classi di Joomla e nemmeno necessariamente usano lo stesso stile di programmazione. Ad esempio, potremmo voler utilizzare una classe PHP scritta per un altro progetto. In tal caso, è buona abitudine piazzare il file nella cartella classes del nostro componente.
La cartella helpers contiene invece classi di “appoggio” alle nostre classi principali; ad esempio funzioni che abbiamo bisogno di utilizzare in tutto il componente (conversione di dati, gestione dei messaggi di errore, e così via…) o che effettuano elaborazioni trasversali sugli oggetti definiti.
Gestire parametri e richieste
Gli oggetti JRegistry, JUser, JSession, JBrowser ci risultano molto utili per gestire l’interazione con l’utente dell’applicazione. Ci permettono di leggere proprietà o parametri associati all’utente (potendo così estendere le sue caratteristiche) o alla sessione o al browser.
Struttura del componente
Ecco una rapida panoramica della struttura tipica di un componente. Salvo dove diversamente specificato, la struttura tra il backend e il frontend è la stessa:
- mycomponent.php
- controller.php
- models (cartella)
- views (cartella)
- tables (cartella, solo nel backend)
- assets (cartella, solo nel frontend)
Altre cartella che possiamo trovare sono:
- controllers (nel caso usiamo diversi controller)
- classes
- helpers
All’interno della cartella views troviamo una sottocartella per ciascuna vista. Ad esempio potremmo avere una vista di default che si chiama come il componente, un’altra vista per l’oggetto singolo e una per la lista degli oggetti.
Supponendo ad esempio di realizzare un componente per la gestione di libri chiamato com_bookmanager, potremmo avere le viste bookmanager, book e books e quindi le omonime sottocartelle all’interno di views.
Entrando in ciascuna vista, avremo un file principale chiamato view.html.php e una sottocartella chiamata tmpl che contiene i layout.
NOTA: tutte queste sono convenzioni. Potremmo anche ridurre la nostra aderenza agli standard di nomenclatura Joomla; ma ne soffriremmo senz’altro dato che in questo modo una serie di automatismi pescano automaticamente i file necessari senza doverli sempre specificare.
File di installazione
Nella cartella di backend del nostro componente avremo anche i file necessari per preparare il file di installazione:
- un file XML con tutti i dettagli dell’estensione
- eventuali file SQL di installazione e disinstallazione
- eventuali file PHP di installazione e disinstallazione (se vogliamo compiere operazioni aggiuntive durante queste fasi)
Moduli e plugin
La struttura per moduli e plugin è molto più semplice.
Per ciascun modulo esiste una specifica sottocartella dentro modules che contiene:
- un file principale, con lo stesso nome del modulo
- un file XML con i dati del modulo
- un file helper.php, che ospita eventuali elaborazioni più complesse
- una sottocartella tmpl con il layout
I plugin sono ancora più semplici, non stanno in una sottocartella specifica e sono costituiti solo da un file PHP e un XML.