JOOMLA – TUTORIAL – CREARE UN COMPONENT – BACKEND

Nell’articolo di oggi realizzeremo il backend del nostro componente, usando il pattern MVC (Model View Controller). Per chi non lo conoscesse si tratta di uno dei pattern più usati nello sviluppo software, che prevede la separazione della logica di business dal modello di rappresentazione dei dati.

Nel pattern MVC sono presenti le seguenti 3 componenti software:

  • model –> responsabile della gestione del dato (offre i metodi di accesso/modifica al dato)
  • view    –> responsabile della rappresentazione del dato
  • controller  –> gestisce le richieste degli utenti invocando gli oggetti adatti di volta in volta.
In Joomla le classi che implementano il pattern MVC sono:
  • JModel
  • JView
  • JController

Nel nostro caso il compito del componente di back-end sarà quello di gestire i parametri di configurazione del servizio chat, pertanto realizzeremo i seguenti moduli software:

  • un componente Model che offre i servizi di lettura e scrittura sulla tabella descritta nel precedente articolo
  • un componente View che presenta il dato all’utente
  • un componente Controller responsabile di gestire il modello di navigazione e le operazioni richieste dall’utente

Per ogni componente Joomla definisce due entrypoint, uno per la parte pubblica del sito e uno per la parte di amministrazione. Per il componente di amministrazione Joomla definisce entry point un file chiamato componentname.php, disponibile nel path administrator/components/com_componentname/componentname.php.

Nel nostro progetto l’entry point è il file administrator/components/com_liveassistant/liveassistant.php.

All’interno di tale file è presente la regola di definizione del controller

La prima chiamata impedisce l’accesso diretto al file, le chiamate successive definiscono il controller e la regola di redirect in base al parametro task. Joomla cerchà la definizione del controller in un file controller.php presente nella stessa directory dell’entry point. In tale directory viene definita la classe LiveAssistantController che estende JController

In assenza di un task specifico il controller invocherà il metodo display, in modo da invocare la view responsabile della visualizzazione del dato. Joomla cerca le view disponibili nel path component/com_[component_name]/views/[name of view]/, nel nostro caso component/com_liveassistant/views/liveassistant/. Le view sono definite in file view.[view_mode].php, dove il view_mode indica il formato della view, nel nostro caso html.

La nostra view contiene il seguente testo

La View è responsabile di costruire la pagina, in particolare essa aggiunge il titolo alla pagina e alla toolbar e gestisce l’aggiornamento dei parametri della chat. Essa invoca il file tmpl/default.php responsabile di mostrare i dati e i pulsanti per aggiornare i dati. Inoltre nella view sono visibili le chiamata al model. Come si può vedere il model non è espressamente indicato, ma è una classe vhe viene inizializzata cercano la classe LiveAssistantModelLiveAssistant che estende la classe JModel. Tale classe fornisce i metodi di lettura e scrittura al db, come si può vedere nell’estratto

 

Nel prossimo articolo realizzeremo la componente di front-end.