Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


dev:overview

Введение

InstantCMS является модульной системой, построенной с использованием MVC-архитектуры.

Модульные блоки, из которых собирается функционал сайта, в InstantCMS называются Компонентами.

В свою очередь, каждый компонент состоит из трех основных частей: контроллера, модели и шаблонов. Компонент может содержать как все эти части одновременно, так и любое их сочетание по-отдельности.

Контроллеры

Контроллер - основная часть компонента, в которой находится вся бизнес-логика. Задача контроллера - получить запрос от пользователя, обработать его и вернуть результат (например, HTML-страницу или JSON).

Каждый компонент может иметь 2 контроллера - frontend и backend, которые работают в пользовательской и административной части сайта соответственно.

Модели

Модель - часть компонента, содержащая логику по извлечению, изменению и сохранению данных. Модель получает запросы из контроллера и возвращает ему результаты из базы данных, либо наоборот, сохраняет изменения в базе.

Шаблоны

Шаблоны служат для форматирования данных перед выводом их пользователю. Шаблон содержит в себе HTML-разметку и минимум программного кода - только в том объеме, который необходим для форматирования вывода. Данные в шаблон передаются контроллером.

Схема работы

Каждый запрос пользователя (открытие страницы в браузере) запускает следующий рабочий процесс:

  1. Запускается файл index.php;
  2. Роутер определяет какой компонент был запрошен и запускает его контроллер;
  3. Контроллер получает параметры запроса из URL, либо из формы заполненной пользователем;
  4. Контроллер получает (или сохраняет) данные через модель;
  5. Контроллер обрабатывает данные необходимым образом;
  6. Контроллер вызывает шаблон и передает в него полученные (или обработанные) данные;
  7. Шаблон формирует конечную HTML-страницу, которая возвращается пользователю.

Таким образом, основная логика (большая часть кода) находится в контроллере.

В следующих разделах документации мы разберем более детально устройство контроллеров, моделей и шаблонов.


К оглавлению

dev/overview.txt · Последние изменения: 22.04.2015 17:03 — аquarius