Блог Горошко Андрея 1C-Битрикс Роутинг (Routing) в Битрикс: Настройка маршрутов в /bitrix/routes/

Роутинг (Routing) в Битрикс: Настройка маршрутов в /bitrix/routes/

Средний рейтинг
Еще нет оценок

Традиционно URL в Битрикс обрабатывались через urlrewrite.php и компоненты.

Новый механизм Роутинга (доступен в последних версиях ядра) позволяет описывать маршруты в стиле Laravel или Symfony, привязывая URL напрямую к контроллерам или анонимным функциям.

Шаг 1: Включение роутинга

Создайте файл .htaccess или настройки Nginx так, чтобы запросы перенаправлялись на bitrix/routing_index.php (если файл не найден). В стандартной поставке Битрикс это уже настроено.

Шаг 2: Подключение конфигурации

В файле /bitrix/.settings.php (или /local/.settings.php) нужно указать, какие файлы маршрутов подключать.

'routing' => [
    'value' => [
        'config' => ['web.php', 'api.php'] 
    ],
    'readonly' => true,
],

Система будет искать эти файлы в /local/routes/ (или /bitrix/routes/).

Шаг 3: Описание маршрутов (web.php)

Создадим файл /local/routes/web.php

use Bitrix\Main\Routing\RoutingConfigurator;

return function (RoutingConfigurator $routes) {
    
    // Простой маршрут с замыканием
    $routes->get('/hello/{name}', function ($name) {
        return "Привет, {$name}!";
    });

    // Маршрут к контроллеру
    $routes->get('/api/user/{id}', [\My\Module\Controller\User::class, 'getAction']);
    
    // Группировка маршрутов
    $routes->prefix('catalog')->group(function (RoutingConfigurator $routes) {
        
        $routes->get('list', function() {
            return "Список товаров";
        });
        
        $routes->get('detail/{id}', function($id) {
            return "Товар #{$id}";
        });
    });
};

Как это работает

  1. При запросе /hello/world сработает первый маршрут. Битрикс сам подключит пролог, выполнит функцию и выведет «Привет, world!» в буфер (с подключением эпилога, если нужно).
  2. Параметры из URL ({name}, {id}) передаются в аргументы функции или действия контроллера.

Вывод:
Роутинг — идеальный инструмент для создания API, лендингов или спецпроектов внутри Битрикс, когда не хочется создавать громоздкую структуру из компонентов и инфоблоков ради простой логики.


Routing Битрикс, роутинг D7, routes.php, маршрутизация, красивые url, RoutingConfigurator, контроллеры.

Мой рейтинг:

Добавить комментарий

Related Post

Создание своего модуля в Битрикс: Структура, install/index.php и version.phpСоздание своего модуля в Битрикс: Структура, install/index.php и version.php

Средний рейтинг Еще нет оценок Модуль — это основной способ расширения функциональности Битрикс. Создание собственного модуля позволяет инкапсулировать бизнес-логику, компоненты, классы и административные страницы в единый, легко устанавливаемый пакет. Шаг

Кастомный поиск: Индексация своих данных через событие OnReindexКастомный поиск: Индексация своих данных через событие OnReindex

Средний рейтинг Еще нет оценок Модуль поиска в Битрикс автоматически индексирует инфоблоки, форумы и статические файлы. Но что, если у вас есть данные в своей таблице или динамически генерируемые страницы,

ExpressionField в D7 ORM: SQL-функции и вычисления прямо в запросахExpressionField в D7 ORM: SQL-функции и вычисления прямо в запросах

Средний рейтинг Еще нет оценок ExpressionField — это мощный инструмент D7 ORM, который позволяет создавать «виртуальные» поля, значение которых вычисляется с помощью произвольного SQL-выражения. Это позволяет перенести часть логики с PHP