[CLI Package Builder] Разработка пакетов без рутины

Всем привет! Рад представить Package Builder — CLI-инструмент для быстрого старта разработки пакетов под MODX Revolution 3. Это мой первый пакет, опубликованный на Packagist, и установить его можно одной командой:
composer global require shevartv/modx-builder
.

Зачем это нужно

Создание transport-пакета для MODX — процесс с кучей рутины: структура папок, конфиги, элементы, лексиконы, сборка. Package Builder автоматизирует всё это. Одна команда — и у вас готовая структура компонента со всеми файлами. Дальше пишете код, а сборщик берёт на себя остальное.

Ключевая фишка — headless-сборка

Пакеты можно собирать без установленного MODX и без MySQL. Сборщик скачает ядро MODX и сформирует transport.zip без обращения к базе данных. Полученный пакет устанавливается на любой MODX 3 через менеджер пакетов — все элементы создаются, файлы копируются, резолверы выполняются. При удалении пакета всё чисто удаляется.

Сценарии работы

Сборщик поддерживает четыре сценария, и каждый разработчик может выбрать удобный:

  1. Headless — полностью файловая разработка без установки MODX. Описываете элементы в файлах, собираете transport.zip, устанавливаете на тестовом сайте. Безопасно — при удалении пакета ничего не затирается.
  2. Файловая + стандартная сборка — если MODX уже установлен, но вы предпочитаете работать с файлами. Он есть как побочный эффект, практического смысла лично я в нём не вижу.
  3. Файловая + элементы в БД — описываете элементы в файлах, добавляете их в MODX для тестирования без пересборки пакета.
  4. Смешанная — часть элементов в файлах (сниппеты, плагины, чанки), часть через админку (настройки, TV, меню). Перед сборкой экспорт извлечёт всё из БД в файлы.
Что умеет

  • Создание структуры пакета из шаблонов (можно делать свои шаблоны для разных типов компонентов и переиспользовать в разных проектах из одной директории)
  • Сборка transport.zip со всеми типами элементов: сниппеты, чанки, плагины, шаблоны, TV, настройки, меню, события, политики доступа
  • Извлечение лексиконов и настроек прямо из PHP-кода
  • Извлечение XML-схемы из существующих таблиц в БД
  • Экспорт элементов из БД MODX в файлы
  • Резолверы — скрипты для установки, обновления и удаления
  • Автоматические проверки кода перед сборкой (PHPStan, PHP CS Fixer, ESLint — можно заменить на Psalm, Pint, Biome)
  • Шифрование платных пакетов через modstore.pro API
  • Фильтрация файлов при сборке через .packignore
Статус

Пока это первая версия (0.3.0). Тестирование проводилось синтетическое — headless-сборка, установка и удаление на тестовом сайте, все типы элементов и резолверы. Реальных пакетов в production пока не собиралось, так что буду рад обратной связи и баг-репортам.

Установка и документация

Документация: shevartv.github.io/modx-builder

Спасибо за внимание!
Артур Шевченко
4 часа назад
modx.pro
34
0
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0