An open API service indexing awesome lists of open source software.

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

Скелетон разработки модуля для Битрикс маркетплейс

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
```