proklung/bitrix-symfony-router-module

为Bitrix提供的模块,支持使用Symfony路由器和原生Bitrix路由

1.1.5 2021-08-18 14:51 UTC

This package is auto-updated.

Last update: 2024-09-18 21:41:44 UTC


README

  • 通过Yaml文件配置的Symfony路由(路径在Bitrix后台管理中指定)
  • 从Bitrix D7主模块版本21.400.0开始,通过Yaml文件配置的Bitrix D7路由(路径在Bitrix后台管理中指定)

为什么?

模块的基础是相关主题的研究成果,但已打包成包和/或单独的类。由于技术或行政原因,并非所有项目都能部署整个熟悉的机器。因此,此功能被单独抽取出来。

安装

主要项目的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

在网站后台管理界面bitrix/admin/partner_modules.php中安装模块proklung.symfony.router

init.php中添加

use Bitrix\Main\Loader;

Loader::includeModule('proklung.symfony.router');

配置

模块激活后,将在内容部分出现子菜单设置Symfony路由器

  • “Symfony路由”标签页

    1. 活动 - 如果复选框未选中,则该功能不工作。
    2. 路由配置Yaml文件的路径 - 指定普通配置的Symfony路由Yaml文件的路径。如果为空,则会出现消息。该功能将不会工作。
    3. Yaml文件缓存文件夹的路径 - 如果为空,则不会进行缓存。
  • “原生Bitrix路由”标签页

    如果主模块版本低于21.400.0,则不会出现“原生Bitrix路由”标签页。

    1. 活动 - 如果复选框未选中,则该功能不工作。

    2. 描述路由的PHP文件(在/local/routes文件夹中) - 将作为路由配置的文件。

      安装模块(如果使用功能)后,在/bitrix/settings.php中添加(或编辑)routing部分(所有根据文档

        return [
        // ....
        'routing' => ['value' => [
            'config' => [
                'test.php'
            ]
       ]
        ]
        ];

      如果指定的文件不存在于/local/routes文件夹中,则会创建它。无需修改它,因为在下次后台管理选项更新时,更改将重置。

    3. 原生Bitrix路由配置Yaml文件的路径 - 指定具有普通配置的Symfony路由Yaml文件(有一些细微差别)。

      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 # Ключевой признак
      

      如果为空(或指定的文件不存在),则会出现消息。该功能将不会工作。

    4. 原生Bitrix路由Yaml文件缓存文件夹的路径 - 如果为空,则不会进行缓存。

其他

  1. 可以通过以下方式获取Symfony\Component\Routing\Router(Symfony路由)的实例
$router = \Proklung\Symfony\Router\SymfonyRoutes::getInstance();