home chevron_right
Ядро SF4: `/simai` внутри модуля `simai.framework`

Назначение /simai как ядраlink

/simai — это платформенная часть SIMAI Framework 4 (SF4), которая ставится вместе с модулем simai.framework и обеспечивает “опорную инфраструктуру” фреймворка на сайте. Важно воспринимать её как ядро, которое не правят в проектах: любые доработки и расширения выполняются через проектный слой (в первую очередь {site_dir}/simai.data и настройки сайта/разделов/страниц). Такой подход позволяет обновлять SF4 без постоянного ручного слияния изменений.

На практике /simai объединяет несколько типов системных артефактов: базовые конфиги (включая конфигурации ассетов), служебные файлы для работы админ-инструментов, базовые реализации блоков/свойств и инфраструктуру мастеров. В структуре ядра обычно встречаются, например, каталоги admin, asset, config, block, property, wizard — это не “данные проекта”, а именно опорная часть платформы.

Мастера и действия мастера: /simai/wizard/actionlink

Механизм мастера в SF4 построен на идее “сценария установки/миграции”, который описывается конфигом мастера как цепочка шагов. Каждый шаг ссылается на действие по коду (например, file.copy, urlrewrite.add, option.import.data, iblocktype.import.data и т.д.), а сами действия реализуются на стороне платформы — в ветке /simai/wizard/action.

С точки зрения разработчика решения это выглядит так:

  • решение хранит сценарий (что делать и в каком порядке);
  • платформа SF4 даёт реализацию действий (как именно копировать/распаковывать/импортировать/настраивать).

Типовой шаг в сценарии (упрощённый пример структуры данных) выглядит так:

[
    "name" => "Копирование файлов",
    "code" => "file.copy",
    "data_input_code" => "site_config",
    "parameter" => [
        // параметры действия
    ],
]

Отдельно полезно держать в голове, что мастер поддерживает “поток данных” между шагами (data_output_code / data_input_code) и условия выполнения (condition). Это позволяет делать установку/миграции не “жёстко прошитыми”, а адаптивными под выбранный сайт и параметры мастера.

Системные ассеты и их роль в работе панели/редакторовlink

Системные ассеты SF4 — это общий фундамент для UI фреймворка: панели управления, режимов редактирования и интерфейса мастера. Их задача — обеспечить единый набор JS/CSS (и зависимостей), на который опираются инструменты SF4: выбор макетов областей, включение режимов редактирования, визуальные элементы мастера и т.п.

Характерный паттерн использования — загрузка пакетов через системный загрузчик ассетов SF4:

use SIMAI\Main\Page\Asset;

Asset::getInstance()->load("simai.framework");
Asset::getInstance()->load("simai.bx-panel");
Asset::getInstance()->load("jquery");
Asset::getInstance()->load("popper");

Практический смысл для жизненного цикла страницы и разработки такой:

  • ядро даёт “стандартные пакеты” и их подключение (в т.ч. для панели и редакторов);
  • проект добавляет/переопределяет своё через {site_dir}/simai.data/template и проектную конфигурацию ассетов (у вас — по правилу замещения, чтобы обновления ядра не ломали сайт);
  • режимы редактирования (включая режим редактирования гридов) зависят от этих системных ассетов, поэтому они должны подключаться стабильно и без дублей.