proklung / bitrix-symfony-router-module
Модуль для Битрикса, обеспечивающий работу с роутером Symfony и нативными битриксовыми маршрутами
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:bitrix-d7-module
Requires
- php: >=7.1 || ^8.0
- composer/installers: ~1
- proklung/bitrix.module.boilerplate: ^1.0
- symfony/config: ^4.0 || ^5.0
- symfony/event-dispatcher: ^4.4 || ^5.0
- symfony/http-foundation: ^4.4 || ^5.0
- symfony/http-kernel: ^4.4 || ^5.0
- symfony/routing: ^4.4 || ^5.0
- symfony/serializer: ^4.4 || ^5.0
Requires (Dev)
- icanhazstring/composer-unused: ^0.7.5
README
- Роуты 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();