DevCraft Документации
РазработкиDatalife Engine (DLE)DevCraft AdminСправочникBack-End

Манифест модуля

Структура manifest.php модуля DevCraft Admin.

Каждый модуль DevCraft описывается файлом manifest.php в каталоге devcraft/src/modules/{Name}/. Для админ-оболочки используется devcraft/src/modules/Admin/manifest.php.

Файл возвращает ассоциативный массив с ключами mod, code, meta, menu, ajax, changelog, assets.

Блок meta

Метаданные модуля для UI и ссылок:

КлючОписание
nameОтображаемое имя («DevCraft Admin»)
versionВерсия SemVer плагина
descriptionКраткое описание
iconИконка Metro UI (mif-*)
docsLinkURL публичной документации
siteLinkСтраница загрузки на devcraft.club
authorИмя, контакты, донаты

Блок menu

Массив пунктов меню, создаваемых через AdminLink::page():

AdminLink::page(__('Главная'), 'dashboard', DashboardPage::class, 'mif-home'),
  • slug — сегмент URL (action=dashboard);
  • класс страницы — реализация PageInterface;
  • иконка — Metro UI.

Страница без пункта в боковом меню (роутинг сохраняется через AdminLinkResolver):

AdminLink::hidden('edit', EditSuggestionPage::class),

Тип hidden не рендерится в navview, но ?action=edit продолжает открывать страницу.

Блок ajax

Регистрация AJAX-обработчиков:

'ajax' => [
    'controller' => 'admin',
    'methods'    => [
        'settings' => SettingsHandler::class,
        // ...
    ],
],

Имя контроллера передаётся в devcraft/ajax.php как controller=admin; метод — как method=settings. Для сателлитов обязателен mod={код модуля}. Каждый handler реализует AjaxHandlerInterface.

Блок assets

Подключаемые JS/CSS относительно каталога модуля, например:

'assets' => ['js' => ['admin.js']],

Блок changelog

Подключает changelog.data.php — массив изменений для страницы «История изменений».

Блок composer_required

Обязательные пакеты Composer для модуля. Агрегируются ManifestPackageReader из всех модулей реестра.

'composer_required' => [
    [
        'name'         => 'vendor/example-package',
        'minVersion'   => '^1.0',
        'hardRequired' => true,
    ],
],
КлючОписание
nameИмя пакета vendor/package
minVersionМинимальная версия / constraint
hardRequiredtrue — пакет обязателен (Dashboard, колонка «Обязательный»); false — рекомендуемый

При дубликате имени в нескольких модулях модуль-источник — первый в порядке Registry; required=true, если любой модуль указал hardRequired: true.

Подробнее: Composer-пакеты модулей.

Регистрация модуля

Registry сканирует devcraft/src/modules/*/manifest.php и строит меню DLE через DleMenuBuilder. Подробнее: Registry, PluginContext.

См. также

On this page