Runtime модулей
Обзор
- 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
- прочитать module.json и проверить required dependencies
- запустить ModuleInstallerService::install или wizard preparation/finalization lifecycle
- проверить migrations, seeders, module record, active state и published assets
- очистить или пересобрать module integration caches
Правила
Architectural rule
Не считайте папку модуля разрешением на public runtime integration; active-module eligibility управляет runtime use.
Architectural rule
Храните module paths единообразно как modules/<ModuleName>; не смешивайте голые имена папок с этой формой.