Модель-Представление-Контроллер (MVC)
Yii использует шаблон проектирования Модель-Представление-Контроллер (MVC, Model-View-Controller), который широко применяется в веб-программировании.
MVC предназначен для разделения бизнес-логики и пользовательского интерфейса, чтобы разработчики могли легко изменять отдельные части приложения, не затрагивая другие. В архитектуре MVC модель предоставляет данные и правила бизнес-логики, представление отвечает за пользовательский интерфейс (например, текст, поля ввода), а контроллер обеспечивает взаимодействие между моделью и представлением.
Помимо этого, Yii использует фронт-контроллер, называемый приложением (application), который инкапсулирует контекст обработки запроса. Приложение собирает информацию о запросе и передает её для дальнейшей обработки соответствующему контроллеру.
Следующая диаграмма отображает структуру приложения Yii:
Статическая структура приложения Yii

Типичная последовательность работы приложения Yii
Следующая диаграмма описывает типичную последовательность процесса обработки пользовательского запроса приложением:
Типичная последовательность работы приложения Yii

- Пользователь осуществляет запрос посредством URL
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
. - Представление подключает некоторые виджеты.
- Сформированное представление вставляется в макет страницы.
- Действие завершает формирование представления и выводит результат пользователю.