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