Il modello MVC in Joomla

InfoIl modello MVC (Model-View-Control) è una delle novità nate con l'avvento della versione 1.5 di Joomla.
Infatti con la 1.5 sono stati riscritti dei file (in particolare delle classi) del core del CMS, affinchè rispettasse i criteri di buona programmazione, tra cui l'utilizzo di alcuni pattern.
L'obiettivo principale di questo modello è quello di separare la logica della costruzione dai dati.
In questo articolo spiegheremo i principi di tale modello e il motivo per cui la creazione di un buon componente deve rispettare questo pattern.
Il modello MVC è uno dei pattern di programmazione e di design delle classi più utilizzati.
Lo scopo di tale architettura è quello di strutturare un programma o un componente in modo modulare dividendolo in tre tipi di oggetti:
  • Model;
  • View;
  • Controller;
I tre oggetti sono l'uno indipendente dall'altro, quindi se si va a modificare il codice all'interno di uno, non sarà (o non dovrebbe essere) necessario modificare anche gli altri due.
Hanno ruoli diversi, analizziamoli un attimo.
modello mvc




Il Model gestisce la logica dell'applicazione che comprende l'elaborazione e l'accesso ai dati. In modo formale si dice che il modello incapsula i dati utilizzati dal componente.
Poichè con Joomla abbiamo una continua interazione con un database il Model contiene per esempio i metodi per recuperare, aggiungere, rimuovere e aggiornare le informazioni delle tabelle.
I dati per la maggior parte provengono dal database, ma possono provenire anche da altri fonti o servizi web.

Il View organizza i dati, prendendoli dal Model, in modo da essere visualizzati dall'utente. Infatti il suo compito è quello di generare l'output. Per esempio può implementare la pagina HTML che mostra il componente o il modulo.

Il Controller gestisce la parte delle richieste, le elabora e le indirizza verso l'oggetto destinatario. E' il "vero responsabile" delle azioni degli utenti.

Ecco come avvengono le interazioni tra i diversi componenti: il Controller determina il tipo di richiesta che gli arriva, la quale viene usata dal Model per manipolare i dati e i dati risultanti dall'elaborazione vengono poi passati al View. Il Controller non espone i dati nel model, comanda i suoi metodi cambiando i dati, e poi li passa al View che li espone.

In questo modo si divide il layout dal codice che ha il compito di svolgere determinate azioni, rendendo il sito più flessibile e potente.

Una conseguenza molto importante dell'utilizzo di questo modello è data dalla possibilità di fare override.

In particolare per in Joomla l'implementazione del modello MVC è avvenuta utilizzando tre classi:
Nella documentazione presente all'interno del sito Joomla.org, possiamo vedere in maniera dettagliata le classi implementate dalle quali possiamo trarre esempi e spunti oppure basta andare nel Wiki di Joomla.it dove c'è un'interessante guida su come fare a creare un componente che sfrutti il modello MVC.

Generatori della struttura MVC

Sul web ci sono numerosi generatori del modello MVC per Joomla (e non solo), per esempio anche sul sito delle estensioni di joomla.org ne troviamo uno.
Con uno strumento di questo genere basta scrivere una breve descrizione del progetto che vogliamo sviluppare, scegliere gli elementi di cui si ha bisogno per creare il proprio componente (gli elementi che andranno ad incidere sia sul front end sia nel back end del sito), il database, la lingua e fare clic su "Generate package" per esportare tutto il pacchetto di installazione in formato zip. A questo punto il pacchetto di installazione è pronto e bisogna "solo" scrivere il codice del componente. Solo è una parola messa tra virgolette perchè bisogna avere ben chiaro cosa vogliamo che il nostro componente faccia e avere un po' di conoscere di linguaggi come il php, quindi potrebbe non essere una parte semplicissima.

Scritto da ventus85

commentaCommenta questo articolo sul forum