Реализация паттернов MVC и FrontController в Ideal CMS

Точкой входа во внешнюю и административную часть является скрипт _.php. В нём происходят следующие события:

FrontController запускает класс роутера \Ideal\Core\Site\Router или \Ideal\Core\Admin\Roter в зависимости от того к какой части пользователь пытается получить доступ.

Роутер по URL запроса определяет три вещи:

  1. имя контроллера для обработки запрашиваемой страницы,
  2. инициализирует класс модели (и заполняет его данными)
  3. находит путь к этой страницы от корня сайта.

Затем FrontController инициализирует класс контроллера (определённый в роутере), передаёт ему модель и путь к странице (также найденные в роутере) и запускает контроллер на выполнение (метод run()).

Контроллер запрашиваемой страницы определяет какое действие (action) требуется совершить и запускает соответствующий метод.

В экшене контроллера происходит заполнение переменных вида (twig-шаблона).

Для общедоступной части контроллер (уже снова в методе run()) вызывает класс \Ideal\Core\Site\Helper, общий для всего сайта, откуда извлекает данные для шаблона, общие для всего сайта (например, главное меню, баннеры и т.п.)

В результате всех своих действий контроллер (с помощью модели и вида) генерирует html-код страницы и возвращает его во FrontController.

После этого FrontController начинает вывод данных. Сначала он отправляет HTTP-заголовки, а затем уже и сам текст страницы.

К списку сообщений

comments powered by Disqus