Modèle-Vue-Contrôleur (MVC)
Yii implémente le modèle de conception modèle-vue-contrôleur (MVC), qui est largement adopté dans la programmation Web. MVC a pour but de séparer la logique métier des considérations d'interface utilisateur, de sorte que les développeurs peuvent plus facilement changer chaque partie sans affecter l'autre. Dans MVC, le modèle représente l'information (les données) et les règles de gestion, la vue contient des éléments de l'interface utilisateur tels que les entrées sous forme de texte, et le contrôleur gère la communication entre le modèle et la vue.
Outre la mise en oeuvre de MVC, Yii introduit également un contrôleur frontal,
appelé Application
, qui encapsule le contexte d'exécution pour le traitement
d'une requête. Application recueille des informations sur une requête de l'utilisateur,
puis il l'envoie à un contrôleur approprié pour traitement ultérieur.
Le schéma suivant montre la structure statique d'une application Yii:
Structure statique d'une Application Yii

Un flux de travail typique
Le schéma suivant montre un flux de travail typique d'une application Yii quand elle traite une requête d'un utilisateur:
Déroulement typique d'une application Yii

- Une requête utilisateur est envoyée à l'adresse
http://www.exemple.com/index.php?r=post/show&id=1
et le serveur Web traite la requête en exécutant le script d'amorçage (bootstrap)index.php
. - Le script d'amorçage crée une instance d'Application et l'exécute.
- L'Application obtient des informations détaillées sur la demande de l'utilisateur depuis le composant d'application
nommé
request
. - L'application détermine le controller demandé
et l'action avec l'aide
d'un composant d'application nommé
urlManager
. Dans cet exemple, le contrôleur estpost
, qui se réfère à la classePostController
, et l'action estshow
, dont la signification réelle est déterminée par le contrôleur. - L'application crée une instance du contrôleur demandé pour traiter la demande de l'utilisateur.
Le contrôleur détermine que l'action
show
fait référence à une méthode nomméeactionShow
dans la classe contrôleur. Ensuite il crée et exécute les filtres (par exemple contrôle de l'accès, mesure des performances) associés à cette action. L'action est exécutée si elle est autorisée par les filtres. - L'action lit en base de données un
Post
model dont l'ID est1
. - L'action effectue le rendu de la vue view nommée
show
avec le modèlePost
. - La vue lit et affiche les attributs du modèle
Post
. - La vue exécute quelques widgets.
- Le résultat du rendu de la vue est intégré dans un gabarit layout.
- L'action complète le rendu de la vue et affiche le résultat à l'utilisateur.