| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Пакет для генерации Swagger UI на основе аннотаций при работе с контроллерами и роутером Bitrix.
composer install webpractik/bitrixoa
./vendor/bin/bitrixoa
Пакет работает со 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:
php vendor/bin/bitrixoa --bitrix-generate -b bootstrap.phpПример bootstrap.php (поднимает ядро и подключает модули):
<?php
$projectRoot = dirname(__DIR__);
$_SERVER['DOCUMENT_ROOT'] = $projectRoot . '/public';
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/cli/bootstrap.php';
require_once $projectRoot . '/vendor/autoload.php';
\Bitrix\Main\Loader::includeModule('vendor.engine');Процедурные файлы без классов (admin/*, include.php и т.п.) рефлексия не исполняет — TokenScanner заранее находит имена классов и пропускает файлы без них.
Если Ваш роутер не настроен, то прочтите Настройка роутера Bitrix:
use Bitrix\Main\Routing\RoutingConfigurator;
return function (RoutingConfigurator $configurator) {
$configurator->get('api-doc', [\BitrixOA\BitrixUiController::class, 'apidocAction']);
};Запустить генерацию с флагом --index-mode создаст сгенерированный /api-doc/index.php с разметкой swaggerui физически.
| Back | FazBrowse Home | New Git URL |