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

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

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

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


dev:overview

Введение

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

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

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

Автоматическая загрузка классов

InstantCMS автоматически загружает классы из директорий:

  • system/core/ - имя класса должно начинаться на cms. Например, класс cmsAction, его файл system/core/action.php. Это системные классы.
  • system/fields/ - имя класса должно начинаться на field. Например, класс fieldDate, его файл system/fields/date.php. Это классы полей форм.
  • system/controllers/NAME/model.php - имя класса должно начинаться на model. Например, класс modelUsers, его файл system/controllers/users/model.php. Это классы моделей контроллеров.

Также поддерживаются загрузки классов по пространствам имён.

namespace должен начинаться на icms\ а дальше полный путь к файлу относительно директории system. Например:

use icms\controllers\admin\traits\listgrid;

Подключит файл system/controllers/admin/traits/listgrid.php

Кроме этого, InstantCMS поддерживает Composer. Предполагается, что пакеты Composer устанавливаются из корневой директории установки InstantCMS, движок ищет файл автозагрузчика Composer в /vendor/autoload.php.

Контроллеры

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

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

Модели

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

Шаблоны

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

Схема работы

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

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

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

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


К оглавлению

dev/overview.txt · Последнее изменение: 13.08.2022 22:31 — fuze

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki