home chevron_right
Архитектура ядра и модули

Фокус глубины: состав модулей, границы публичного API vs внутренностей, зависимости, что расширять без форкаlink

В SIMAI Framework 4 (SF4) “ядро” — это, по сути, связка Bitrix-модулей и системного runtime-слоя, которые вместе дают: компоненты, мастера, загрузку ассетов, конфигурации и набор библиотечных классов. Проектная часть (то, что меняется на конкретном сайте) вынесена в слой данных сайта и подключается без правки поставки.

Практическая граница между “API” и “внутренностями” в SF4 проходит по тому, что предназначено для прямого использования в проекте и что является инфраструктурой поставки:

  • Публичный слой API (на него можно опираться в проекте):

    • библиотека классов SIMAI\Main\… (конфигурации, ассеты, include-области, работа с блоками/редактированием);
    • контракт слоя данных сайта {site_dir}/simai.data (шаблон, области, grid, конфиги сайта/разделов/страниц);
    • подключение областей через \SIMAI\Main\IO\IncludeArea::includeTemplateArea(...).
  • Внутренний слой (лучше не расширять “в обход” правил):

    • системные каталоги SF4 (runtime и системные конфиги/ассеты), которые обновляются вместе с поставкой;
    • действия мастера (actions) как инфраструктура: их можно использовать, но нежелательно “вшивать” проектную бизнес-логику в конкретные внутренние реализации.

Ключевой принцип совместимости без форка такой: не менять поставочные части SF4, а расширять через:

  • {site_dir}/simai.data (шаблон/области/представления/конфиги),
  • собственные модули (если расширение выходит за рамки шаблона и данных).