SVSP
TECHNOLOGIES

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

Терминология

Для понимания работы технологии Certis Platform необходимо учитывать её терминологию. На данной страницы представлены основные понятия, используемые для описания работы платформы.

MVC (Model-View-Controller, «Модель-Представление-Контроллер») — паттерн проектирования веб-приложений являющийся современным промышленным стандартом. Основой паттерна является разделение приложения на три составляющих — модель, представление (вид), контроллер. Модель предоставляет данные и реагирует на команды контроллера, изменяя своё состояние, представление отвечает за отображение данных модели пользователю, реагируя на изменения модели, контроллер интерпретирует действия пользователя, оповещая модель о необходимости изменений. Данный паттерн характерен для любых приложений, написанных на Laravel, в том числе и Certis Platform. Используя данный паттерн, проектировщики архитектуры могут условится о дополнительных ограничениях, например в Certis Platform принято делать контроллеры тонкими, а всю бизнес логику размещать в моделях.

Тонкий контроллер (Thin Controller) — это архитектурный принцип, согласно которому код в контроллере должен быть максимально простым и минималистичным. Его главная задача — координировать взаимодействие между пользовательским запросом и бизнес-логикой приложения, но не содержать саму эту логику.

Сущность (Entity) в Certis Platform — это расширенная версия модели данных, которая наследует базовый функционал Eloquent ORM, но дополнена специфическими требованиями платформы.

Ключевые особенности:

  1. Централизованная регистрация: Все Сущности должны быть зарегистрированы в платформе для их корректной работы.
  2. Автоматическое управление доступом (ACL): Платформа автоматически проверяет права доступа (CRUD) ко всем операциям с Сущностями. Эта проверка включена по умолчанию для всех зарегистрированных Сущностей, за исключением тех, которые явно помечены как публичные (доступные всем).
  3. Совместимость с Eloquent: Несмотря на наличие собственной обертки, Сущности полностью сохраняют всю стандартную функциональность моделей Laravel Eloquent. Разработчик может использовать все знакомые методы и отношения Eloquent без ограничений.

Таким образом, Сущность является основным строительным блоком для данных в Certis Platform, обеспечивая безопасность и контроль на уровне платформы, без ущерба для гибкости и мощи стандартного ORM.

Групповая политика доступа к сущностям — это механизм управления правами внутри Certis Platform, при котором права на выполнение операций (запрещен, чтение, запись) с сущностями (объектами данных) назначаются не отдельным пользователям, а целым группам. Все пользователи, входящие в группу, автоматически наследуют её права, что обеспечивает централизованное, масштабируемое и согласованное управление доступом.

Модуль в Certis Platform — это автономный программный компонент, который расширяет функционал системного ядра. Вся бизнес-логика платформы должна быть реализована исключительно в виде модулей, что обеспечивает высокую степень модульности, сопровождаемости и позволяет динамически подключать новые возможности.

Ключевые характеристики модулей:

  1. Архитектурный принцип: Все функции платформы, не входящие в базовое ядро, реализуются в модулях. Ядро отвечает только за базовые сервисы и интеграцию.
  2. Состав модуля: Модуль является законченной единицей и может включать:
    • Сущности данных (Модели Eloquent с расширенным функционалом платформы)
    • Контроллеры (для обработки HTTP-запросов)
    • Представления (Blade-шаблоны)
    • Собственный экспортируемый API в виде сервисов.
  3. Управление жизненным циклом: Модули поддерживают версионирование и систему контроля зависимостей, что позволяет управлять их обновлениями и совместимостью.
  4. Безопасное взаимодействие: Общение между модулями, а также между модулями и ядром, осуществляется через строго определенные API-интерфейсы. Этот подход инкапсулирует внутреннюю реализацию и предотвращает критические ошибки (летальные исходы) при разработке нового функционала или обновлении существующего.

Экспортируемый API модуля — это его публичный интерфейс, который могут использовать другие модули. Он включает в себя классы и методы, предназначенные для вызова извне. Версионирование существует прежде всего для публичного API модулей, чтобы его потребители могли контролировать свои зависимости и быть уверенными в стабильности взаимодействия.

SVSP
TECHNOLOGIES
Политика конфиденциальности
Политика конфиденциальности