Перейти к содержанию

Конфигурация

Package Builder использует три уровня конфигурации:

Уровень Файл Создаётся Назначение
Глобальный user.config.json (внутри пакета) modxapp config Данные автора, настройки по умолчанию для всех проектов
Локальный modxapp.json (корень проекта) modxapp init или автоматически при create Настройки текущего проекта
Пакет package_builder/packages/<name>/config.php modxapp create Конфигурация сборки конкретного пакета

Глобальный конфиг

Настраивается один раз командой modxapp config. Содержит данные автора, путь к шаблонам, выбор инструментов. Используется как основа при создании локального конфига.

Локальный конфиг (modxapp.json)

Создаётся командой modxapp init или автоматически при первом modxapp create. Значения берутся из глобального конфига. Можно закоммитить в репозиторий, чтобы все участники команды использовали одинаковые настройки.

Конфигурация пакета (config.php)

Каждый пакет имеет свой файл конфигурации сборки — package_builder/packages/<name>/config.php. Создаётся автоматически при modxapp create.

Полный пример config.php

<?php
return [
    'name' => 'MyPackage',
    'name_lower' => 'mypackage',
    'name_short' => 'my',
    'version' => '1.0.0',
    'release' => 'alpha',

    'paths' => [
        'core' => 'core/components/mypackage/',
        'assets' => 'assets/components/mypackage/',
    ],

    'schema' => [
        'file' => 'schema/mypackage.mysql.schema.xml',
        'auto_generate_classes' => true,
        'update_tables' => true,
    ],

    'elements' => [
        'category' => 'MyPackage',
        'chunks' => 'elements/chunks.php',
        'snippets' => 'elements/snippets.php',
        'plugins' => 'elements/plugins.php',
        'templates' => 'elements/templates.php',
        'tvs' => 'elements/tvs.php',
        'settings' => 'elements/settings.php',
        'menus' => 'elements/menus.php',
    ],

    'static' => [
        'chunks' => true,
        'snippets' => true,
        'templates' => true,
    ],

    'tools' => [
        'phpCsFixer' => false,
        'eslint' => false,
    ],

    'build' => [
        'download' => false,
        'install' => false,
        'update' => [
            'chunks' => true,
            'snippets' => true,
            'settings' => false,
        ],
    ],

    'encrypt' => [
        'enable' => false,
        'login' => '',
        'password' => '',
    ],
];

Описание секций

Основные поля

Поле Описание
name CamelCase имя компонента
name_lower Имя в lowercase
name_short Краткое имя (для префиксов лексиконов и настроек)
version Семантическая версия (1.0.0)
release Тип релиза: alpha, beta, pl (production)

paths

Пути к файлам компонента относительно корня MODX:

'paths' => [
    'core' => 'core/components/mypackage/',
    'assets' => 'assets/components/mypackage/',
],

schema

Настройки работы с XML-схемой БД:

Поле Описание По умолчанию
file Путь к файлу схемы schema/<name>.mysql.schema.xml
auto_generate_classes Генерировать PHP-классы true
update_tables Создавать/обновлять таблицы false

elements

Описание файлов элементов. Каждый ключ указывает на PHP-файл, возвращающий массив элементов:

'elements' => [
    'category' => 'MyPackage',           // категория в админке
    'chunks' => 'elements/chunks.php',
    'snippets' => 'elements/snippets.php',
    'plugins' => 'elements/plugins.php',
    'templates' => 'elements/templates.php',
    'tvs' => 'elements/tvs.php',
    'settings' => 'elements/settings.php',
    'menus' => 'elements/menus.php',
    'events' => 'elements/events.php',
    'policies' => 'elements/policies.php',
    'policyTemplates' => 'elements/policyTemplates.php',
],

static

Какие элементы хранить как статические файлы:

'static' => [
    'chunks' => true,       // чанки из файлов
    'snippets' => true,     // сниппеты из файлов
    'templates' => true,    // шаблоны из файлов
],

tools

Инструменты разработки (влияют на создание пакета через create):

'tools' => [
    'phpCsFixer' => false,  // PHP CS Fixer (PSR-12)
    'eslint' => false,      // ESLint для JS
    'toolsConfigPath' => '', // путь к своим конфигам инструментов
],

build

Настройки сборки:

Поле Описание
download Предлагать скачать после сборки
install Устанавливать после сборки
update Какие элементы обновлять при переустановке
'build' => [
    'download' => false,
    'install' => false,
    'update' => [
        'chunks' => true,      // обновлять чанки
        'snippets' => true,    // обновлять сниппеты
        'settings' => false,   // НЕ обновлять настройки (сохранить значения)
    ],
],

update → settings

Рекомендуется оставить settings: false, чтобы при обновлении пакета не перезатирать настройки, которые пользователь уже изменил.

encrypt

Шифрование пакета через modstore.pro API:

'encrypt' => [
    'enable' => false,       // включить шифрование
    'login' => '',           // логин modstore.pro
    'api_key' => '',         // API-ключ modstore.pro
],

Подробнее: Шифрование

Безопасность

Не коммитьте config.php с логином и API-ключом в публичные репозитории.