Modelo-Vista-Controlador (Model-View-Controller MVC)
Yii implementa el diseño de patron modelo-vista controlador (model-view-controller MVC) el cual es adoptado ampliamente en la programación Web. MVC tiene por objeto separar la lógica del negocio de las consideraciones de la interfaz de usuario para que los desarrolladores puedan modificar cada parte más fácilmente sin afectar a la otra. En MVC el modelo representa la información (los datos) y las reglas del negocio; la vista contiene elementos de la interfaz de usuario como textos, formularios de entrada; y el controlador administra la comunicación entre la vista y el modelo.
Más alla del MVC, Yii tambien introduce un front-controller llamado aplicación el cual representa el contexto de ejecución del procesamiento del pedido. La aplicación resuelve el pedido del usuario y la dispara al controlador apropiado para tratamiento futuro.
El siguiente diagrama muestra la estructura estática de una aplicación Yii"
Estructura estática de aplicación Yii

Un flujo de tareas típico
El siguiente diagrama muestra un típico flujo de tareas de una aplicación Yii cuando resuelve un pedido de usuario:
Un típico flujo de tareas de una aplicación Yii

- Un usuario realiza un pedido con la siguiente URL
http://www.example.com/index.php?r=post/show&id=1
y el servidor Web se encarga de la solicitud mediante la ejecución del script de arranque en index.php. - El script de entrada crea una instancia de applicación y la ejecuta.
- La aplicación obtiene la información detallada del pedido del usuario del
componente de aplicación
request
. - El controlador determina le controlador y la
acción pedido con ayuda del componente de aplicación
llamado
urlManager
. Para este ejemplo el controlador espost
que refiere a la clasePostController
y la acción esshow
que su significado es determinado por el controlador. - La aplicación crea una instancia del controlador pedido para resolver el pedido del usuario.
El controlador determina que la acción
show
refiere al nombre de métodoactionShow
en la clase controlador. Entonces crea y ejecuta los filtros asociados con esta acción (ejemplo: control de acceso, benchmarking). La acción es ejecutado si los filtros lo permiten. - La acción lee el modelo
Post
cuyo ID es1
de la base de datos. - La acción realiza la vista llamada
show
con el modeloPost
- La vista lee y muestra los atributos del modelo
Post
. - La vista ejecuta algunos widgets.
- El resultado realizado es embebido en un esquema (layout).
- La acción completa la vista realizada y se la muestra al usuario.