https://github.com/proklung/bitrix-primitive-router
Примитивный роутер для Битрикс на компонентах
https://github.com/proklung/bitrix-primitive-router
bitrix php
Last synced: 2 months ago
JSON representation
Примитивный роутер для Битрикс на компонентах
- Host: GitHub
- URL: https://github.com/proklung/bitrix-primitive-router
- Owner: ProklUng
- Created: 2021-06-07T11:29:41.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-06-07T13:37:10.000Z (almost 4 years ago)
- Last Synced: 2024-12-25T21:24:15.530Z (4 months ago)
- Topics: bitrix, php
- Language: PHP
- Homepage:
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# Примитивный роутер для Битрикс на компонентах
### Зачем?
Иногда не получается по административно-техническим причинам развернуть нормальный роутер. Один из вариантов поведения
в такой ситуации - эти компоненты.## Установка
composer.json:
```json
"repositories": [
{
"type": "git",
"url": "https://github.com/proklung/bitrix-primitive-router"
}
]
``````bash
composer require proklung/bitrix-primitive-router
```## Использование
В `/bitrix/components/base/` прилетят два компонента: `base.router` и `rest.router`
```php
$APPLICATION->IncludeComponent('bitrix-primitive-router:base.router', '', array(
"CACHE_TYPE" => "A",
"CACHE_TIME" => 3600,
"SEF_FOLDER" => '/article/',
"SEF_MODE" => "Y",
"SEF_URL_TEMPLATES" => array(
"detail" => "#ELEMENT_ID#/",
"index" => "index.php",
),
));
``````php
$APPLICATION->IncludeComponent('bitrix-primitive-router:rest.router', '', [
'SEF_FOLDER' => '/rest/',
'SEF_URL_PATHS' =>[
'article/get-list/' => 'Local\Rest\Article::getlist()',
'article/get-detail/' => 'Local\Rest\Article::getDetail()',
'article/upsert/' => 'Local\Rest\Article::upsert()',
]
]);
```#### base:rest.router
Методы не статические. Названия классов - полноразмерные. Конструктор должен быть без зависимостей (никакого намека на автовайринг не предусмотрено).
Шаблона не предусмотрено. В браузер отправляется json, создающийся из ответа метода-обработчика.
По соглашению метод-обработчик в возвращаемом массиве может вернуть ключ `httpStatusCode` с HTTP кодом ответа.