voral/bitrix-module-tool
Composer 安装命令:
composer require voral/bitrix-module-tool
包简介
Extension for vs-version-incrementor to automate building update packages for Bitrix modules.
README 文档
README
Расширение для пакета voral/version-increment автоматизирующее пакетов обновления модулей для Битрикс-маркетплейс на основе анализа git коммитов и семантического обновления версии. А так же изменяющее номер версии в файле version.php
Основные функции
При вычислении новой версии утилитой voral/version-increment перед коммитом выполняются следующие этапы по сборке обновления версии:
- Изменение версии модуля в соответствии с обновлением в файле install/version.php. А так же даты версии модуля на текущую. Если это файла нет в модуле - он будет создан.
- На основе анализа коммитов выполненных с предыдущей версии копируются новые и измененные файлы модуля в каталог пакета обновления. Кроме того, при необходимости, добавляется код удаления файлов, которые были удалены из модуля в скрипт обновления
updater.phpОбратите внимание, что функционал удаления упрощенный - перед окончательным оформлением пакета обновлений рекомендую проверить и скорректировать при необходимости
- Если в обновление были добавлены каталоги
install/admin,install/componentsи т.п в скриптupdater.phpдобавляется код по их копированию. При этом для каталога admin выполняется не копирование, а создание файлов которые подключают оригинальные. - Если произведена соответствующая настройка в скрипт
updater.phpдобавляется проверка версии PHP - Если произведена соответствующая настройка в скрипт
updater.phpдобавляется дополнительный кастомный PHP код - На основе коммитов git выполненных с предыдущей версии формируются файлы description.* пакета обновлений
- Если произведена соответствующая настройка генерируется файл контроля версий модулей от которых ваш модуль зависит
- Файлы
updater.php,description.*, а так же<путь_к_исходникам>/install/version.php(если он был создан) добавляются в репозиторий git
Требования
- PHP >= 8.1
- Git установлен и доступен в CLI
- Composer для управления зависимостями
Подготовка
Для начала необходимо установить пакет
composer require -dev voral/bitrix-module-tool
Если у вас до этого не был установлен пакет voral/version-increment - он будет установлен и необходимо будет произвести настройку согласно документации. А так же подключить данный пакет в файле .vs-version-increment.php
use Vasoft\VersionIncrement\Config; use Vasoft\VersionIncrement\Events\EventType; use Voral\BitrixModuleTool\ModuleListener; $config = new Config(); $eventBus = $config->getEventBus(); $listener = new ModuleListener( $config, 'vendor.module', includePhpFile: __DIR__ . '/updates/update_include.php', ); $eventBus->addListener(EventType::BEFORE_VERSION_SET, $listener); // прочие настройки return $config;
Т.к., как правило, есть необходимость доработать пакет обновлений перед загрузкой на маркетплейс (например перевести языковые description.*), рекомендую команду обновления версии выполнять с флагом отключающим коммит
php ./vendor/bin/vs-version-increment --no-commit
Удобно записать этот скрипт в composer.json. Так же необходимо добавить скрипты создания пакетов модуля (обновления и полного) для загрузки на маркетплейс
{
"scripts": {
"vi:auto": "php ./vendor/bin/vs-version-increment --no-commit",
"pack:last": "sh scripts/pack-last.sh",
"pack:ver": "sh scripts/pack-version.sh",
"pack": [
"@pack:ver",
"@pack:last"
]
},
"scripts-descriptions": {
"vi:auto": "Increment module version and generate update package",
"pack:last": "Pack the full package of the module's latest version",
"pack:ver": "Pack the update package for a specified module version",
"pack": "Pack the full package of the latest version and the update package for a specified version"
}
}
Применение
-
После выполнения изменений в модуле выполните расчет версии. Ппо окончанию этого скрипта в консоль будут выведены рекомендуемые команды для выполнения коммита и установки тега. Они будут содержать новую версию пакета.
composer vi:auto
-
При необходимости внесите изменения в CHANGELOG.md, в так же сгенерированные файлы описания обновления /updates/<версия_пакета>/description.*
-
Выполните сборку пакета обновлений для полученной версии (например для версии 1.3.0)
composer pack:last 1.3.0
-
Выполните проверку пакета обновлений как описано в статье
-
После всех проверок выполните сборку пакетов обновления и полного пакета модуля
composer pack:pack 1.3.0
-
Выполните коммит релиза и установите так как рекомендовано на шаге 1
-
Загрузить пакет на Битрикс маркетплейс
Конфигурация
Настройка выполняется при помощи конструктора, который имеет следующие параметры:
$config - обязательный. Конфигурация version-increment
$moduleId - обязательный. Идентификатор вашего модуля
$sourcePath - необязательный. Каталог с исходниками модуля, относительно корня проекта. По умолчанию src
$destinationPath - необязательный. Каталог для пакетов обновлений, относительно корня проекта. По умолчанию updates
$phpVersion - необязательный. Версия PHP если необходим контроль в скрипте обновления
$modulesVersion - необязательный. Требующиеся модули и их версии
$excludeCommitTypes - необязательный. Типы коммитов, сообщения которых необходимо пропускать при формировании файлов description.*
$lang - необязательный. Символьные коды языков для создания описания обновлений (файлов description.*)
$includePhpFile - необязательный. Путь у php файлу, код которого необходимо включить в скрипт обновления update.php
Пример конфигурации
use Vasoft\VersionIncrement\Config; use Vasoft\VersionIncrement\Events\EventType; use Voral\BitrixModuleTool\ModuleListener; $config = new Config(); $eventBus = $config->getEventBus(); $listener = new ModuleListener( $config, 'vendor.module', 'last_version', 'marketplace', '8.3.0', [ 'main' => '24.100.100', 'sale' => '24.0.100', ], ['build','docs','test'], ['ru','en','fr'] __DIR__ . '/updates/update_include.php', ); $eventBus->addListener(EventType::BEFORE_VERSION_SET, $listener); // прочие настройки return $config;
Исключения генерируемые расширением
| Код | Описание |
|---|---|
| 5101 | Нет доступа к каталогу проекта |
| 5102 | Не корректный путь к проекту |
| 5103 | Не найден git тег версии |
| 5104 | Отсутствует или не верный формат файла version.php |
| 5105 | Не корректно задан путь к каталогу исходников или обновлений |
Чтобы избежать конфликты с прочими расширениями пакета voral/vs-version-incrementor можно изменять коды ошибок. Для этого необходимо задать дельту. В приведенном ниже примере коды ошибок будут увеличены на 100
use Vasoft\VersionIncrement\Config; use Vasoft\VersionIncrement\Events\EventType; use Voral\BitrixModuleTool\ModuleListener; use Voral\BitrixModuleTool\Exception\ExtensionException; ExtensionException::$errorCodeDelta = 100; $config = new Config(); $eventBus = $config->getEventBus(); $listener = new ModuleListener($config, 'vendor.module'); $eventBus->addListener(EventType::BEFORE_VERSION_SET, $listener); // прочие настройки return $config;
Пример файла install/version.php
<?php $arModuleVersion = [ 'VERSION' => '1.0.0', 'VERSION_DATE' => '2023-01-01' ];
Лицензия
MIT License. Подробности в файле LICENSE.
voral/bitrix-module-tool 适用场景与选型建议
voral/bitrix-module-tool 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 05 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「module」 「marketplace」 「bitrix」 「vs-version-incrementor」 「version-increment」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 voral/bitrix-module-tool 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 voral/bitrix-module-tool 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 voral/bitrix-module-tool 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Automatically translate and review your content via Lokalise.
bootstrap select field module implementing http://silviomoreto.github.io/bootstrap-select/
Yii2 module to manage website content. Kind of a CMS...
SDK de integração com a API de pagamentos da Braspag
Alfabank REST API integration
Codeurx Modular is simply a package for Laravel to help you create and manage modules.
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-29