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

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

- Un utente esegue una richiesta all'URL 
http://www.example.com/index.php?r=post/show&id=1ed il web server gestisce la richiesta eseguendo lo script di avvioindex.php. - Lo script di avvio crea un'istanza dell'Applicazione e la esegue.
 - L'Application riceve le informazioni dettagliate della richiesta 
dell'utente da un component dell'applicazione 
che si chiama 
request. - 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 classePostController; e l'action èshow, il cui significato attuale è determinato dal controller. - L'applicazione crea una istanza del controller richiesto per gestire 
ulteriormente la richiesta utente. Il controller determina che l'action 
showsi riferisce al metodo, all'interno della classe del controller, che si chiamaactionShow. Il metodo crea ed esegue i filtri (es. controllo accessi, benchmark) associati con questa action. L'action viene eseguita se ciò è permesso dai filtri. - L'action, tramite il model, legge dal database 
il 
Postil cui ID è1. - L'action produce una view chiamata 
showcon i prodotti dal modelPost. - La view legge e visualizza gli attributi del model 
Post. - La view esegue alcuni widget.
 - La produzione della view viene incorporata in un layout.
 - L'action completa la produzione della view e ne visualizza il risultato all'utente.