Come accennato nelle precedenti lezioni, cosi come la maggior parte dei framework PHP professionali disponibili, anche Code Igniter si avvale del Design Pattern denominato MVC / Model-View-Controller. Un Design Pattern è un paradigma, una strategia di gestione di un'applicazione. Nel caso dell'MVC, la gestione si basa sulla divisione della struttura in tre parti fondamentali: i Controller, i Model e le View.
Controller
Un Controller è una classe che ha il compito di "controllare" l'andamento e la struttura di un particolare segmento dell'applicazione. Da un punto di vista tecnico, il Controller è il più importante dei 3 componenti, perché la loro gestione dipende dal Controller stesso.
Dunque puoi vedere il Controller come il gestore di un segmento di applicazione, che ha anche il compito di usare e gestire i Model e le View.
Model
Un Model è una classe che ha il compito di gestire la logica elaborativa in un particolare segmento dell'applicazione. Mentre il Controller si occupa della struttura, il Model si occupa della logica. Uno dei compiti più ovvi del Model è ad esempio la connessione e l'interazione con un database, con tutte le relative query di inserimento, recupero e controllo dei dati.
Il Model interagisce con il database, recupera i dati e li restituisce al Controller. Questo si occuperà poi di utilizzarli come meglio possibile, ad esempio passandoli alla View.
View
La View (Vista) è l'ultimo dei 3 componenti della struttura MVC. Essa contiene l'output, ciò che verrà mostrato all'utente finale. Ad esempio, una View può essere comunemente identificata da una pagina HTML, Javascript o CSS. La View viene "chiamata" (generata) dal Controller.
MVC in pratica
Se hai seguito la procedura d'installazione indicata nella precedente lezione, sei già entrato in contatto con la struttura MVC. Il contenuto di default della pagina iniziale generata da Code Igniter dichiara infatti:
If you would like to edit this page you'll find it located at:
application/views/welcome_message.php
The corresponding controller for this page is found at:
application/controllers/Welcome.php
Ciò significa che il contenuto che vedi attualmente è gestito dal Controller denominato Welcome che genera una View denominata welcome_message.
I Controller sono collocati nella cartella application/controllers
, mentre le View nella cartella application/views
. Apriamo dunque il file application/views/welcome_message.php
: vedrai l'output della pagina che stai visualizzando, comprensivo di struttura HTML e style CSS.
In questo esempio di default Code Igniter non si avvale di un Model. Infatti nell'MVC di Code Igniter il Model è un componente opzionale.