- Роуты Symfony, сконфигурированные через Yaml файл (путь указывается в админке Битрикса)
- Роуты Битрикса D7 (начиная с версии 21.400.0главного модуля), сконфигурированные через Yaml файл (путь указывается в админке Битрикса)
Основа модуля - наработки по теме, но упакованные в бандлы и (или) отдельные классы. Не на всех проектах удается развернуть - по техническим или административным причинам, - всю привычную машинерию. Посему этот функционал выносится в отдельный модуль.
composer.json основного проекта:
  "extra": {
    "installer-paths": {
      "./bitrix/modules/{$name}/": ["type:bitrix-d7-module", "type:bitrix-module"],
      "./bitrix/components/{$name}/": ["type:bitrix-d7-component", "type:bitrix-component"],
      "./bitrix/templates/{$name}/": ["type:bitrix-d7-template", "type:bitrix-theme"]
    }
  }И:
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/bitrix.symfony.router.module"
        }
    ]$ composer require proklung/bitrix-symfony-router-moduleУстановить модуль proklung.symfony.router в административном интерфейсе сайта bitrix/admin/partner_modules.php
Добавить в init.php:
use Bitrix\Main\Loader;
Loader::includeModule('proklung.symfony.router');После активации модуля появится подменю Настройка роутера Symfony в разделе Контент.
- 
Вкладка Роуты Symfony- Активность- если чекбокс не отмечен, то функционал не работает.
- Путь к Yaml файлу с конфигурацией роутов- путь к Yaml файлу с обычной конфигурацией роутов Symfony. Если пусто, то появится сообщение. Функционал работать не будет.
- Путь к папке с кэшом Yaml файлов- если не заполнено, то кэширования не будет.
 
- 
Вкладка Нативные роуты БитриксЕсли версия главного модуля ниже, чем 21.400.0, то вкладкиНативные роуты Битриксне будет.- 
Активность- если чекбокс не отмечен, то функционал не работает.
- 
Файл php с описанием роутов (в папке /local/routes)- файл, который будет конфигом роутов.После установки модуля (и если задействован функционал), то в /bitrix/settings.phpвнести (или отредактировать) секциюrouting(все согласно документации):return [ // .... 'routing' => ['value' => [ 'config' => [ 'test.php' ] ] ] ]; Если указанный файл не существует в папке /local/routes, то он буде создан. Изменять его не нужно, так как в этом случае при следующем обновлении опций в админке изменения перезатруться.
- 
Путь к Yaml файлу с конфигурацией нативных роутов Битрикса- Путь к Yaml файлу с обычной конфигурацией роутов Symfony (с небольшими нюансами).first_bitrix_route: path: /foo/{param}/ controller: 'Proklung\Symfony\Router\ExampleController::cacheAction' methods: GET|POST requirements: param: '\d+' defaults: param: 'Russia' # Старые статические страницы # / => /index.php public_page: path: / controller: '' defaults: _public: true # Ключевой признак Если пусто (или указанный файл не существует), то появится сообщение. Функционал работать не будет. 
- 
Путь к папке с кэшом Yaml файлов нативных роутов Битрикс- если не заполнено, то кэширования не будет.
 
- 
- Экземпляр Symfony\Component\Routing\Router(роуты Symfony) можно получить снаружи так:
$router = \Proklung\Symfony\Router\SymfonyRoutes::getInstance();