[CLI Package Builder] Разработка пакетов без рутины
Всем привет! Рад представить Package Builder — CLI-инструмент для быстрого старта разработки пакетов под MODX Revolution 3. Это мой первый пакет, опубликованный на Packagist, и установить его можно одной командой:
Зачем это нужно
Создание transport-пакета для MODX — процесс с кучей рутины: структура папок, конфиги, элементы, лексиконы, сборка. Package Builder автоматизирует всё это. Одна команда — и у вас готовая структура компонента со всеми файлами. Дальше пишете код, а сборщик берёт на себя остальное.
Ключевая фишка — headless-сборка
Пакеты можно собирать без установленного MODX и без MySQL. Сборщик скачает ядро MODX и сформирует transport.zip без обращения к базе данных. Полученный пакет устанавливается на любой MODX 3 через менеджер пакетов — все элементы создаются, файлы копируются, резолверы выполняются. При удалении пакета всё чисто удаляется.
Сценарии работы
Сборщик поддерживает четыре сценария, и каждый разработчик может выбрать удобный:
Пока это первая версия (0.3.0). Тестирование проводилось синтетическое — headless-сборка, установка и удаление на тестовом сайте, все типы элементов и резолверы. Реальных пакетов в production пока не собиралось, так что буду рад обратной связи и баг-репортам.
Установка и документация
Документация: shevartv.github.io/modx-builder
Спасибо за внимание!
composer global require shevartv/modx-builder.Зачем это нужно
Создание transport-пакета для MODX — процесс с кучей рутины: структура папок, конфиги, элементы, лексиконы, сборка. Package Builder автоматизирует всё это. Одна команда — и у вас готовая структура компонента со всеми файлами. Дальше пишете код, а сборщик берёт на себя остальное.
Ключевая фишка — headless-сборка
Пакеты можно собирать без установленного MODX и без MySQL. Сборщик скачает ядро MODX и сформирует transport.zip без обращения к базе данных. Полученный пакет устанавливается на любой MODX 3 через менеджер пакетов — все элементы создаются, файлы копируются, резолверы выполняются. При удалении пакета всё чисто удаляется.
Сценарии работы
Сборщик поддерживает четыре сценария, и каждый разработчик может выбрать удобный:
- Headless — полностью файловая разработка без установки MODX. Описываете элементы в файлах, собираете transport.zip, устанавливаете на тестовом сайте. Безопасно — при удалении пакета ничего не затирается.
- Файловая + стандартная сборка — если MODX уже установлен, но вы предпочитаете работать с файлами. Он есть как побочный эффект, практического смысла лично я в нём не вижу.
- Файловая + элементы в БД — описываете элементы в файлах, добавляете их в MODX для тестирования без пересборки пакета.
- Смешанная — часть элементов в файлах (сниппеты, плагины, чанки), часть через админку (настройки, 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
Спасибо за внимание!
Поблагодарить автора
Отправить деньги
0