Модули
Супер-администратор → Модули отображает статус пользовательских модулей, зарегистрированных в вашей установке LeadHub.
LeadHub поставляется без встроенных функциональных модулей — система модулей представляет собой точку расширения для разработчиков, позволяющую добавлять новые функции на платформу без изменения основного кода.
Что такое система модулей?
LeadHub использует nWidart/laravel-modules для реализации архитектуры HMVC (Иерархическая модель-представление-контроллер).
HMVC организует код в самодостаточные модули, каждый из которых имеет собственные маршруты, контроллеры, модели, представления, миграции и сервис-провайдер — по сути, это мини-приложение Laravel, загружаемое в основное приложение. Это означает:
- Можно добавлять совершенно новые функции (новые разделы UI, новые конечные точки API, новые фоновые задания) без редактирования ядра.
- Модули можно включать и отключать во время выполнения из панели супер-администратора или через
modules_statuses.json. - Каждый модуль версионируется независимо и может объявлять зависимости от других модулей.
Установка (уже включена в LeadHub)
Пакет уже установлен и настроен в LeadHub. Для проверки выполните:
composer show nwidart/laravel-modules
Конфигурация модулей находится в config/modules.php, а сами модули хранятся в директории Modules/ в корне проекта.
Создание первого модуля
# Создать каркас нового модуля
php artisan module:make MyFeature
# Создать каркасы нескольких модулей одновременно
php artisan module:make ModuleA ModuleB ModuleC
# Создать каркас без стандартных файлов шаблона (минимальный набор)
php artisan module:make MyFeature --plain
После выполнения module:make ваш модуль создаётся в директории Modules/MyFeature/ и автоматически регистрируется.