Files
yii/docs/guide/ru/basics.mvc.txt
2012-03-05 20:37:50 -05:00

46 lines
4.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Модель-Представление-Контроллер (MVC)
======================================
Yii использует шаблон проектирования Модель-Представление-Контроллер (MVC, Model-View-Controller),
который широко применяется в веб-программировании.
MVC предназначен для разделения бизнес-логики и пользовательского интерфейса, чтобы разработчики могли легко изменять
отдельные части приложения, не затрагивая другие.
В архитектуре MVC модель предоставляет данные и правила бизнес-логики, представление отвечает за пользовательский
интерфейс (например, текст, поля ввода), а контроллер обеспечивает взаимодействие между моделью и представлением.
Помимо этого, Yii использует фронт-контроллер, называемый приложением (application),
который инкапсулирует контекст обработки запроса. Приложение собирает информацию
о запросе и передает её для дальнейшей обработки соответствующему контроллеру.
Следующая диаграмма отображает структуру приложения Yii:
![Статическая структура приложения Yii](structure.png)
Типичная последовательность работы приложения Yii
-------------------------------------------------
Следующая диаграмма описывает типичную последовательность процесса обработки пользовательского запроса приложением:
![Типичная последовательность работы приложения Yii](flow.png)
1. Пользователь осуществляет запрос посредством URL `http://www.example.com/index.php?r=post/show&id=1`,
и веб-сервер обрабатывает его, запуская скрипт инициализации `index.php`.
2. Скрипт инициализации создает экземпляр [приложения](/doc/guide/basics.application) и запускает его на выполнение.
3. Приложение получает подробную информацию о запросе пользователя от [компонента приложения](/doc/guide/basics.application#application-component) `request`.
4. Приложение определяет запрошенные [контроллер](/doc/guide/basics.controller)
и [действие](/doc/guide/basics.controller#action) при помощи компонента `urlManager`.
В данном примере контроллером будет `post`, относящийся к классу `PostController`, а действием — `show`, суть которого
определяется контроллером.
5. Приложение создаёт экземпляр запрашиваемого контроллера для дальнейшей обработки запроса пользователя. Контроллер определяет
соответствие действия `show` методу `actionShow` в классе контроллера. Далее создаются и применяются фильтры
(например, access control, benchmarking), связанные с данным действием, и, если фильтры позволяют, действие выполняется.
6. Действие считывает из базы данных [модель](/doc/guide/basics.model) `Post` с ID равным `1`.
7. Действие подключает [представление](/doc/guide/basics.view) `show`, передавая в него модель `Post`.
8. Представление получает и отображает атрибуты модели `Post`.
9. Представление подключает некоторые [виджеты](/doc/guide/basics.view#widget).
10. Сформированное представление вставляется в [макет страницы](/doc/guide/basics.view#layout).
11. Действие завершает формирование представления и выводит результат пользователю.
<div class="revision">$Id: basics.mvc.txt 3321 2011-06-26 12:54:22Z mdomba $</div>