Yii implementa, il pattern architetturale MVC (Model-View-Controller) .
Ampiampente utilizzato nel web anche da altri grossi framework, è una tecnica di sviluppo di sistemi software che si propone di separare la logica di business da tutto ciò che è interfaccia utente.
In questo modo gli sviluppatori possono lavorare ai vari blocchi in maniera indipendente.
Nell’ MVC, il model rappresenta le informazioni (i dati) e le regole di business cioè il significato dei dati stessi e come i dati devono essere trattati ed elaborati, il View contiene gli elementi dell’interfaccia utente (in un sito si parlerebbe di template o layout) cioè come i dati vengono prsentati , mentre il Controller gestisce la comunicazione tra il model e view.
Oltre ad applicare l’MVC, Yii introduce anche un controller, denominato Application, che racchiude il contesto dell’applicazione ed elabora le richieste.
Dal sito ufficiale di Yii ecco un’immagine che rappresenta la struttura di un applicazione Yii.
Sempre dal sito ufficiale ecco il tipico flusso di lavoro dell’applicazione sviluppata tramite Yii.
- L’utente effettua una richiesta all’URL http://www.mia_app.com/index.php?r=post/show&id=1 e il server Web gestisce la richiesta eseguendo lo script index.php.
- Lo script crea un istanza dell’oggetto Application e lo avvia.
- L’oggetto Application recupera informazioni sulle richieste dell’utente dal componente Request, dell’applicazione.
- L’applicazione determina il Controller e la Action da utilizzare per la richiesta con l’aiuto di un componente denominato urlManager.
- L’applicazione crea un’istanza del controller da utilizzare.
- Successivamente, elaborati i dati tramite il model, viene stabilita la view da utilizzare per presentare i risultati.
- La Action termina la View visualizzando i risultati all’utente
Questo post spiega molto brevemente ed in modo molto semplificato il flusso di lavoro di Yii.
Per una delucidazione generale sul pattern MVC un libro adatto è il seguente : PHP 6. Guida per lo sviluppatore (Linguaggi & programmazione) in cui si discute di PHP 6 di MVC e di programmazione OO.
















