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

Package Builder

Package Builder — CLI-инструмент для быстрого старта разработки пакетов под MODX Revolution 3. Одна команда — и вы получаете готовую структуру компонента с настроенными инструментами. Дальше пишете код, а Package Builder берёт на себя рутину: извлечение лексиконов и настроек прямо из кода, сборку transport-пакета.

Что даёт Package Builder

Быстрый старт

  • Готовая структура пакета за одну команду — директории, конфиги, шаблоны файлов, всё по стандартам MODX 3
  • Кастомные шаблоны структуры — возможность создавать структуры пакетов различной сложности, без необходимости ручного создания нужных или удаления ненужных файлов и папок

Вариативность сценариев работы

  • Headless — полностью файловая разработка и сборка без MODX и MySQL
  • С установленным MODX — файловая разработка с тестированием элементов на сайте
  • Смешанная — часть элементов в файлах, часть через админку, извлечение из БД
  • Удалённый сервер — код локально, сборка и установка на сервере

Подробнее: Сценарии работы

Извлечение данных из кода

  • Лексиконы — сканирует PHP-код, находит все вызовы $modx->lexicon() и собирает ключи в файл лексикона (переводы нужно заполнить вручную)
  • Настройки — находит $modx->getOption(), определяет типы настроек и создаёт готовый файл для сборки
  • Схема из таблиц — генерирует XML-схему MODX из существующих таблиц в БД

Качество кода

  • PHPStan — статический анализатор, который находит ошибки в PHP-коде без запуска: неправильные типы аргументов, несуществующие методы, забытые проверки на null. Включён по умолчанию (level 5)
  • PHPUnit + test-utils — готовые моки MODX для unit-тестирования компонентов без реальной БД. Тестовый scaffolding генерируется при create
  • PHP CS Fixer (опционально) — автоматически приводит код к стандарту PSR-12: расставляет отступы, сортирует импорты, исправляет стиль
  • ESLint (опционально) — находит ошибки и проблемы в JS-файлах компонента
  • Автоматические проверки перед сборкой — PHPStan, CS Fixer и ESLint запускаются при build

Сборка и дистрибуция

  • Сборка transport.zip с поддержкой всех типов элементов MODX (сниппеты, чанки, плагины, шаблоны, TV, настройки, меню, события)
  • Headless-сборка — без установленного MODX и MySQL
  • Фильтрация файлов при сборке через .packignore — технические файлы не попадут в пакет
  • Резолверы — скрипты установки, обновления и удаления
  • Шифрование платных пакетов через modstore.pro API

Системные требования

Минимальные (headless-режим)

  • PHP 8.1+
  • Composer
  • Расширения PHP: zip, mbstring

Достаточно для setup, create, build, extract-*.

Для полного функционала

  • PHP 8.1+
  • Composer
  • MODX Revolution 3 (установленный)
  • MySQL/MariaDB
  • Расширения PHP: pdo_mysql, zip, mbstring

Необходимо для команд elements, export, schema-extract и build --install.

Начало работы