oz/oz.router
最新稳定版本:0.1.0
Composer 安装命令:
composer require oz/oz.router
包简介
OZ Router module
README 文档
README
Warning
Этот проект находится в активной разработке. Между релизами могут происходить критические изменения.
Роутер для Bitrix D7 с PHP-DI, группами маршрутов, guards, middleware, гидратацией аргументов и автоматической нормализацией ответа.
oz.router сопоставляет текущий HttpRequest с маршрутом, собирает request-scoped DI-контейнер, выполняет guards и middleware, вызывает обработчик и преобразует результат в HttpResponse.
Quick Start
<?php use Bitrix\Main\Loader; use Oz\Router\Router; use Oz\Router\RouterRunner; require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; Loader::includeModule('oz.router'); $router = new Router(); $router->get('/ping', static function (): array { return ['status' => 'ok']; }); $response = (new RouterRunner($router))->run(); $response->send();
Что есть в модуле
- регистрация маршрутов через
get/post/put/patch/delete/option/any/add - вложенные
group()с префиксами и наследованием policy - guards через
guard()иexceptGuard() - middleware через
middleware()иexceptMiddleware() - резолв handler arguments из path params, query, form-data и JSON body
- автосвязывание контроллеров, middleware и guards через PHP-DI
- валидация параметров и DTO через
Bitrix\Main\Validation\ValidationService - встроенные точки входа для Bitrix component и service
Точки входа
- ручной bootstrap через
Router+RouterRunner - компонент
oz:router.provider - service endpoint
/bitrix/services/oz.api/
Практический пример
oz.router.sample показывает реальный layout для production-подобного API:
- routes в
config/routes/api.php - DI definitions в
config/di.php - versioned API через
group('/api/v1', ...) - controller handlers, DTO, guards и middleware
Документация
| Раздел | Описание |
|---|---|
| Старт и точки входа | Установка, минимальный bootstrap, routes file, component и service endpoint |
| Маршрутизация | Методы роутера, группы, handlers, route params, DI и нормализация ответа |
| Guards | Контракт guard-классов, порядок выполнения и исключение guards |
| Middleware | Контракт middleware, цепочка выполнения и post-processing ответа |
| Валидация | Гидратация DTO, валидация параметров и формат ошибок |
| Конфигурация | Module\Config, настройки модуля и provider/service runtime |
Ключевые caveats
- встроенный
oz:router.providerавтоматически пытается подключитьdi.phpрядом с routes layout, но не использует сохранённый в настройках путь к DI-файлу ExceptionHandlerвозвращает JSON только приAccept: application/json, иначе отвечает простым HTML-телом
Лицензия
См. LICENSE.
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2026-04-03