Yii використовує шаблон проектування Модель-Представлення-Контролер (MVC, Model-View-Controller), який широко використовується у веб-програмуванні.
MVC спрямований на відділення бізнес-логіки від користувальницького інтерфейсу, щоб розробники могли легко змінювати окремі частини додатку, не задіваючи інші. В архітектурі MVC модель надає дані і правила бізнес-логіки, представлення відповідає за користувальницький інтерфейс (наприклад, текст, поля вводу), а контролер забезпечує взаємодію між моделлю та представленням.
Окрім цього, Yii також використовує фронт-контролер, який називається додатком (application), який інкапсулює контекст обробки запиту. Додаток збирає інформацію про запит та передає його для подальшої обробки відповідному контролеру.
Наступна діаграма відобража структуру додатку Yii:
Наступна діаграма описує типову послідовність процесу обробки користувальницького запиту додатком:
http://www.example.com/index.php?r=post/show&id=1
,
а веб-сервер обробляє його, запускаючи виконання скрипта ініціалізації index.php
;request
;urlManager
.
У даному прикладі контролером буде post
, який відноситься до класу PostController
,
а дією — show
, суть якого визначається контролером;show
методу actionShow
у класі контролера. Далі створюються та застосовуються фільтри
(наприклад, access control, benchmarking), повʼязані з даною дією, та, якщо фільтри дозволять, дія виконається;Post
з ID рівним 1
;show
із даними моделі Post
;Post
;