Comprendere il pattern Model-View-Controller
Descrizione
CakePHPsegue il design pattern software MVC. Programmare utilizzando il pattern MVC separa la tua applicazione in tre parti principali::
- Model che rappresenta i dati dell'applicazione
- View che fornisce la presentazione dei dati del modello
- Controller che gestisce ed indirizza le richieste fatte dal client.
Figura 1: Una semplice richiesta MVC
La Figura 1 mostra un esempio, in CakePHP, di una richiesta MVC di base. Per illustrarla, assumeremo che un client denominato "Ricardo" abbia giusto effettuato il click sul link "Compra subito una torta personalizzata!" dell'home page della vostra applicazione.
- Riccardo clicca sul link che punta a http://www.example.com/cakes/buy, ed il suo browser invia una richiesta al vostro web server.
- Il dispatcher controlla la URL di richiesta (/cakes/buy) e l'affida al corretto controller.
- Il controller esegue la specifica logica dell'applicazione. Ad esempio controlla se Ricardo si sia effettivamente loggato.
- Il controller, inoltre, utilizza i modelli per ottenere l'accesso ai dati dell'applicazione. I modelli rappesentano di solito tabelle di database, ma possono anche rappresentare entità LDAP , feed RSS, o file sul sistema. In questo esempio, il controller usa un modello per ritrovare gli ultimi acquisti effettuati da Ricardo sul database.
- Una volta che il controller ha effettuato le proprie "magie" sui dati, li fornisce ad una vista. La vista riceve questi dati e diviene pronta a visualizzarli per il client. Le viste in CakePHP sono di solito in formato HTML, ma una vista potrebbe essere anche un documento PDF, un documento XML , o un oggetto JSON a seconda delle vostre necessità.
- Una volta che la vista ha utilizzato i dati forniti dal controller per creare la presentazione, il contenuto della stessa è inviato al browser di Riccardo.
Quasi tutte le richieste della vostra applicazione possono seguire questo semplice patter. Aggiungeremo in seguito ulteriori dettagli su quali sono specifiche di CakePHP, perciò tenete questo bene a mente mentre procediamo.
Vantaggi
Perchè usare MVC? Perchè si tratta di un design pattern software reale e testato che trasforma una applicazione in un pacchetto manutenibile, modulare e rapidamente sviluppata. Dividere i compiti dell'applicazione in controller, modelli e viste separati renderà la vostra applicazione leggera per quando sarà pronta. Nuove caratteristiche potranno essere facilmente aggiunte e, costruire il nuovo sulla base del vecchio, diventerà un gioco da ragazzi. La progettazione modulare e separata permette, inoltre, di lavorare in simultanea tra sviluppatori e grafici ed include la possibilità di realizzare rapidamente prototipi. La separazione consente anche agli sviluppatori di modificare una parte della applicazione senza avere effetti sulle altre.
Se non avete mai costruito le vostre applicazioni in questo modo, vi prenderà un po' di tempo l'abituarvi a questo modello, ma una volta che avrete costruito la vostra prima applicazioni utilizzando CakePHP, non vorrete più farlo in modo diverso.

login to add a comment