build — Сборка пакета¶
Собирает transport.zip пакет из исходников компонента.
Использование¶
Опции¶
| Опция | Описание |
|---|---|
--install |
Установить пакет после сборки |
--download |
Скачать transport.zip (только web-режим) |
--encrypt |
Зашифровать пакет через modstore.pro API |
--no-check |
Пропустить проверки PHPStan/CS Fixer/ESLint |
--verbose |
Подробный вывод |
Примеры¶
# Собрать пакет
modxapp build mypackage
# Собрать и установить
modxapp build mypackage --install
# Собрать с шифрованием
modxapp build mypackage --encrypt
# Через web
# http://site.ru/build_web.php?package=mypackage&install&download
Проверки перед сборкой¶
Перед сборкой автоматически запускаются проверки качества кода (если инструменты установлены):
- PHPStan — статический анализ
- PHP CS Fixer — проверка или автоисправление стиля (режим настраивается в
config.php) - ESLint — проверка JavaScript
Если проверка не прошла — сборка прерывается. Используйте --no-check для пропуска.
Подробнее: Инструменты разработки
Процесс сборки¶
- Загружает конфигурацию из
packages/<name>/config.php - Создаёт
modPackageBuilder - Регистрирует namespace компонента
- Создаёт категорию элементов
- Обрабатывает элементы (chunks, snippets, plugins, templates, TV, settings, menus, events, policies)
- Копирует файлы
core/иassets/с фильтрацией по.packignore - Добавляет резолверы
- Упаковывает в
core/packages/<name>-<version>-<release>.transport.zip - Устанавливает или предлагает скачать (если указаны флаги)
Обработка элементов¶
Элементы описываются в файлах packages/<name>/elements/:
// elements/snippets.php
return [
[
'name' => 'mySnippet',
'description' => 'My snippet description',
'file' => 'elements/snippets/mysnippet.snippet.php',
],
];
// elements/plugins.php
return [
[
'name' => 'myPlugin',
'description' => 'My plugin',
'file' => 'elements/plugins/switch.php',
'events' => [
'OnPageNotFound' => [],
'OnHandleRequest' => ['priority' => 0],
],
],
];
Фильтрация файлов¶
При копировании файлов в transport-пакет применяется фильтрация через .packignore. Технические файлы (PHPStan, ESLint, node_modules и т.д.) исключаются автоматически.
Web-режим¶
Для серверов без CLI PHP 8 доступна web-сборка: