https://github.com/voral/bitrix-module-skeleton
Скелетон разработки модуля для Битрикс маркетплейс
https://github.com/voral/bitrix-module-skeleton
bitrix bitrix-marketplace bitrix-module
Last synced: 10 months ago
JSON representation
Скелетон разработки модуля для Битрикс маркетплейс
- Host: GitHub
- URL: https://github.com/voral/bitrix-module-skeleton
- Owner: Voral
- License: apache-2.0
- Created: 2025-06-09T04:36:15.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-06-09T04:49:50.000Z (11 months ago)
- Last Synced: 2025-06-09T05:28:14.298Z (11 months ago)
- Topics: bitrix, bitrix-marketplace, bitrix-module
- Language: PHP
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Скелетон для разработки модуля Битрикс
Скелетон содержит шаблон модуля Битрикс, а так же преднастроенные пакеты для тестирования и формирования пакетов
обновлений модуля для Битрикс маркетплейс.
## Вспомогательные пакеты
Скелетон включает в себя набор готовых зависимостей для упрощения разработки, тестирования и поддержания качества кода.
Ниже приведён список основных пакетов и их назначение.
### Инструменты разработки
| Пакет | Назначение |
|---------------------------------------------------------------------------|-------------------------------------------------------------------------------|
| [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) | Форматирование кода согласно стандартам PER-CS2.0. |
| [phpstan/phpstan](https://github.com/phpstan/phpstan) | Статический анализатор кода, помогает находить ошибки без запуска приложения. |
| [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) | Расширение PHPStan для поддержки проверок в тестах PHPUnit. |
### Тестирование
| Пакет | Назначение |
|---------------------------------------------------------------------------|------------------------------------------------------------------------------|
| [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) | Основной фреймворк для написания юнит-тестов. |
| [php-mock/php-mock-phpunit](https://github.com/php-mock/php-mock-phpunit) | Поддержка мокирования функций и методов в тестах PHPUnit. |
| [voral/mock-builder-bitrix](https://github.com/Voral/mock-builder-bitrix) | Генератор моков для классов Битрикс, облегчает создание тестового окружения. |
### Вспомогательные утилиты
| Пакет | Назначение |
|----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
| [voral/version-increment](https://github.com/Voral/vs-version-incrementor) | Простая CLI-утилита для автоматического увеличения версии модуля в файле `version.php`. |
| [voral/bitrix-module-tool](https://github.com/Voral/bitrix-module-tool) | Расширение для работы с модулями Битрикс для создание пакетов обновления и автоматического изменения версии в version.php. |
## Скрипты зарегистрированные в composer.json
| Команда | Назначение |
|------------------------|-----------------------------------------------------------------------------------------------------------------|
| **composer mock:bx** | Генерация моков для классов Битрикс |
| **composer vi** | Автоматическое обновление версии модуля и подготовка файлов для пакета обновлений |
| **composer vi:debug** | Просмотр изменений, которые могут войти в релиз. А так же версии модуля, которая будет присвоена автоматически. |
| **composer test** | Запуск тестирования модуля |
| **composer stan** | Запуск статического анализа кода |
| **composer fixer** | Форматирование кода согласно настройкам |
| **composer checkit** | Выполнение команд stan и fixer |
| **composer pack:last** | Создание полного архива актуальной версии для маркетплейс |
| **composer pack:ver** | Создание архива обновления для маркетплейс |
| **composer pack** | Создание архива обновления и полного архива для маркетплейс |
## Подготовка к работе
1. Клонируйте репозиторий
Для простого модуля:
```
git clone https://github.com/Voral/bitrix-module-skeleton
```
Для модуля, использующего vasoft.core:
```
git clone -b core https://github.com/Voral/bitrix-module-skeleton
```
2. Разрешите запуск и запустите скрипт init.sh. Он запросит ИД вендора и название модуля и произведёт замены в файлах с
учётом этого, заменит текст README.md, инициализирует новый git-репозиторий, добавляет в `.gitignore` файл
`.vs-mock-builder.local.php`
```
chmod +x init.sh
./init.sh
```
3. Выполните настройки в конфигурационных файлах
* `.vs-mock-builder.local.php` — укажите реальный путь к актуальному ядру битрикс. Это необходимо для создания моков
ядра. Этот файл на втором этапе добавляется в `.gitignore`
* `.vs-mock-builder.php` — при необходимости, внесите необходимые правки в конфигурацию генератора моков и
расширения
для генерации моков классов Битрикс
* `.php-cs-fixer.php` — настройки php CS Fixer. По умолчанию установлен PER-CS2.0
* `.phpstan.neon.dist` — настройки PHP Stan
* `.vs-version-increment.php` — Настройки пакета инкремента версии, а так же автоматической генерации пакетов
обновления модуля
* `phpunit.xml` — Настройки PHP Unit
* `phpstan-bootstrap.php` — Подключает автозагрузку моков битрикс для работы PHP Stan, при необходимости можно
добавить дополнительную логику
* `tests/bootstrap.php` — Подключает автозагрузку моков битрикс для работы PHP Unit, при необходимости можно
добавить
дополнительную логику
4. Сгенерируйте моки классов битрикс
```
composer mock:bx
```
5. Если в скрипте обновления пакета необходимо постоянно выполнять некоторую логику добавьте ее в файл
updates/update_include.php
## Выпуск новой версии модуля
По окончанию работ над новой версией, включая тестирование, необходимо запустить генерацию CHANGELOG и пакета
обновления, а так же инкремент версии.
```
composer vi
```
Эта команда, по умолчанию, выполнится без окончательного коммита внесенный ею изменений.
Внесите при необходимости правки в CHANGELOG.md, который генерируется на основании сообщений коммитов добавленных с
прошлой версии. Версии определяются тегами git в формате v2.3.0
Далее внесите при необходимости изменения в пакет обновления, который будет размещен в каталоге updtaes/<Версия_пакета>.
Обратите внимание на файлы description.*, а так же скрипт обновления update.php.
После внесения необходимых правок можно упаковать пакеты обновления командой
```
composer pack
```
Когда все выполнено, можно выполнять коммит, например для версии 4.1.9
```
git commit -am 'chore(release): v4.1.9'
git tag v4.1.9
```