Download the PHP package webpractik/bitrixoa without Composer
On this page you can find all versions of the php package webpractik/bitrixoa. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download webpractik/bitrixoa
More information about webpractik/bitrixoa
Files in webpractik/bitrixoa
Package bitrixoa
Short Description A package for generating annotations and drawing SwUi when working with Bitrix controllers.
License MIT
Homepage https://github.com/webpractik/bitrixoa
Informations about the package bitrixoa
[bitrixoa] Bitrix OpenApi
Пакет для генерации Swagger UI на основе аннотаций при работе с контроллерами и роутером Bitrix.
Установка
Генерация
Параметры
--bitrix-generateпараметр указывает, что openapi необходимо смотреть в директорию local/modules--index-modeсоздаст сгенерированный /api-doc/index.php с разметкой swaggerui физически.--bootstrap(-b) подключить php-файл до сканирования (нужно для swagger-php >=5, см. ниже).
Совместимость со swagger-php 5/6
Пакет работает со swagger-php ^4.6, ^5 и ^6. Ключевые отличия:
- Способы описания. Поддерживаются и PHP-атрибуты
#[OA\...](предпочтительно в 5/6), и docblock-аннотации@OA\.... Для аннотаций нужен пакетdoctrine/annotations(в swagger-php он опционален начиная с 4.8) — он добавлен в зависимости bitrixoa. -
Рефлексия и bootstrap. В swagger-php >=5 удалён
TokenAnalyser, остался толькоReflectionAnalyser: чтобы прочитать аннотации/атрибуты, он загружает классы. Контроллеры Bitrix наследуют классы ядра, поэтому генерацию нужно запускать при поднятом ядре — укажите bootstrap-скрипт, инициализирующий Bitrix:Пример
bootstrap.php(поднимает ядро и подключает модули):Процедурные файлы без классов (
admin/*,include.phpи т.п.) рефлексия не исполняет —TokenScannerзаранее находит имена классов и пропускает файлы без них.
Режимы работы
A. Через нативный bitrix router (v20+)
Если Ваш роутер не настроен, то прочтите Настройка роутера Bitrix:
-
Добавьте в роутер
- В таком случае документация откроется по адресу
/api-doc
B. Через Bitrix Controller без роутера
- Создайте в своем модуле файл
.settings.php - Задайте корректный namespace и конфигурации для своего модуля
- Скопируйте содержимое класса BitrixUiNativeController из этого пакета к себе в модуль, в свой класс-контроллер
- Обращайтесь по адресу
<адрес сайта>/bitrix/services/main/ajax.php?action=<ваши настройки>
С. Статический UI
Запустить генерацию с флагом --index-mode создаст сгенерированный /api-doc/index.php с разметкой swaggerui физически.
Roadmap
- [ ] Сделать генерацию путей на основе анализа роутера
- [ ] Покрыть тестами