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

47 lines
4.5 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>