Docs

Runtime модулей

uticms.modules.runtime · verified 2026-07-11

Обзор

Scope
Файловые модули в modules/ и их runtime lifecycle

Ключевые понятия

Manifest
Метаданные module.json с namespace, providers, routes, migrations, seeders и опциональными интеграциями.
Module Path
Значение path в БД в канонической форме modules/<ModuleName>.
Install Wizard
Поэтапный flow установки модуля для манифестов с поддержкой install.

Структура

  • Registry
    • Databaseтаблица modules; app/Models/Module.php
    • Manifestsmodules/<ModuleName>/module.json
  • Runtime Services
    • Discoveryapp/Services/ModuleAutoDiscoveryService.php
    • Installerapp/Services/ModuleInstallerService.php
    • Bootstrapapp/Services/Modules/ModuleRuntimeBootstrap.php
    • Viewsapp/Services/Modules/ModuleViewLoader.php
    • Assetsapp/Services/Modules/ModuleAssetPublisher.php
  • Shipped Modules
    • Core
    • Blog
    • Shop
    • ShopB2C
    • OneCBridge
    • BlockForgeDemo
    • TemplateDemo

Факты

  • AppServiceProvider запрашивает providers у ModuleAutoDiscoveryService и регистрирует их при boot приложения. authoritative
  • Установленные module records хранят name, slug, version, is_active, priority, path, namespace, env и installed_at. authoritative
  • ModuleInstallerService выполняет migrations и declared seeders модуля, создаёт или обновляет module record, активирует по запросу, сохраняет schema state, очищает integration caches и публикует assets для active installs. authoritative
  • Wizard preparation проверяет manifest dependencies перед подготовкой БД и record; finalization активирует, запускает seeders, публикует assets, сохраняет state и обновляет caches. authoritative
  • Опубликованные module assets копируются в public/module/<slug>; маршрут module_asset — dynamic fallback. authoritative
  • Core — module manifest с is_core; Shop — installable commerce core; ShopB2C требует Shop и добавляет site layout; OneCBridge требует Shop и экспонирует API routes. authoritative

Инструкции

Install Module

  1. прочитать module.json и проверить required dependencies
  2. запустить ModuleInstallerService::install или wizard preparation/finalization lifecycle
  3. проверить migrations, seeders, module record, active state и published assets
  4. очистить или пересобрать module integration caches

Правила

Architectural rule

Не считайте папку модуля разрешением на public runtime integration; active-module eligibility управляет runtime use.

Architectural rule

Храните module paths единообразно как modules/<ModuleName>; не смешивайте голые имена папок с этой формой.