Model-View-Controller (MVC)

Yii implementa il design pattern [schema di progettazione] model-view-controller (MVC), che è largamente adottato nella programmazione Web. L'obiettivo di MVC è quello di separare la business logic [logica di funzionamento] dalle considerazioni relative all'interfaccia utente, cosicché gli sviluppatori possono modificare ciascuna parte più facilmente senza influenzare le altre. Nel MVC il model rappresenta le informazioni (i dati) e la business logic; la view contiene elementi dell'interfaccia utente come testi, form di inserimento dati; e il controller gestisce le comunicazioni tra model e view.

Yii, oltre ad implementare MVC, introduce un front-controller, chiamato Application il quale incapsula il contesto di esecuzione per il processo di una richiesta. Application raccoglie alcune informazioni sulla richiesta dell'utente e poi le smista al controller appropriato per ulteriori manipolazioni.

Il seguente diagramma mostra la struttura statica di un'applicazione Yii:

Struttura statica di un'applicazione Yii

Struttura statica di un'applicazione Yii

1. Workflow tipico

Il seguente diagramma mostra il workflow [flusso di lavoro] tipico di un'applicazione Yii quando essa gestisce una richiesta utente:

Workflow tipico di un'applicazione Yii

Workflow tipico di un'applicazione Yii
  1. Un utente esegue una richiesta all'URL http://www.example.com/index.php?r=post/show&id=1 ed il web server gestisce la richiesta eseguendo lo script di avvio index.php.
  2. Lo script di avvio crea un'istanza dell'Applicazione e la esegue.
  3. L'Application riceve le informazioni dettagliate della richiesta dell'utente da un component dell'applicazione che si chiama request.
  4. L'Application determina sia il controller che l'action richiesti grazie all'aiuto dell'application component che si chiama urlManager. In questo esempio, il controller è post, il quale si riferisce alla classe PostController; e l'action è show, il cui significato attuale è determinato dal controller.
  5. L'applicazione crea una istanza del controller richiesto per gestire ulteriormente la richiesta utente. Il controller determina che l'action show si riferisce al metodo, all'interno della classe del controller, che si chiama actionShow. Il metodo crea ed esegue i filtri (es. controllo accessi, benchmark) associati con questa action. L'action viene eseguita se ciò è permesso dai filtri.
  6. L'action, tramite il model, legge dal database il Post il cui ID è 1.
  7. L'action produce una view chiamata show con i prodotti dal model Post.
  8. La view legge e visualizza gli attributi del model Post.
  9. La view esegue alcuni widget.
  10. La produzione della view viene incorporata in un layout.
  11. L'action completa la produzione della view e ne visualizza il risultato all'utente.
$Id: basics.mvc.txt 3321 2011-06-26 12:54:22Z mdomba $

Be the first person to leave a comment

Please to leave your comment.