M - Модель
V - Вид
C - Контроллер
Но первым вызывается Контроллер, и идут они в там порядке: C->M->V
1. Пользователь набирает запрос, ну или переходит по ссылке в браузер
2. Загружается конфигурация и запускается приложение фрэйворка. (Запрос пользователя попадает в **входной скрипт** который называется FRONT CONTROLLER - /web/index.php)
3. Определяется маршрут и создается контролер изходя из запроса в ссылке (Анализируется запрос ** url **, и на основание url, определяется маршрут. и если такой маршрут есть, тогда создается обьект контроллера (Вызывается контроллер, создаётся его обьект).)
3.1 Внутри контроллера есть ряд методов, которые называются action-нами или действиями или же методами
За каждую страничку конкретно отвечает контроллер и его какое-то действие.(метод или action)
3.2 Контроллер загружает модель (который как правило работает с базой данных) или несколько моделей.
Подключается **Вид** чтобы красиво упаковать эти данные и полученные мы вставляем в **Вид** который уже с загруженными данными из контроллера отдается пользователю в качестве ответа.
На диаграмме показано как приложение обрабатывает запрос.
- Пользователь обращается к точке входа
web/index.php
. - Скрипт загружает конфигурацию configuration и создает экземпляр приложения для дальнейшей обработки запроса.
- Приложение определяет маршрут запроса при помощи компонента приложения запрос.
- Приложение создает экземпляр контроллера для выполнения запроса.
- Контроллер, в свою очередь, создает действие и накладывает на него фильтры.
- Если хотя бы один фильтр дает сбой, выполнение приложения останавливается.
- Если все фильтры пройдены - приложение выполняется.
- Действие загружает модель данных. Вероятнее всего из базы данных.
- Действие генерирует вид, отображая в нем данные (в т.ч. и полученные из модели).
- Сгенерированный вид приложения передается как компонент ответ.
- Компонент "ответ" отправляет готовый результат работы приложения браузеру пользователя.