Yii2 routes definition in modules(模块中的 Yii2 路由定义)
问题描述
有没有办法从模块配置中添加路由?
Is there any solution to add routes from module configuration?
示例.我们有描述
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(FILE_PATH_CONFIG_ENV . '_routes.php') // return array
],
]
在每个模块中,我们加载带有私有参数的自定义配置文件
in each module we load custom config file with private parameters
public function loadConfig($sFileName = 'main', $sFolderName = 'config')
{
Yii::configure($this, require($this->getBasePath() . DS . $sFolderName . DS . $sFileName . '.php'));
return $this;
}
配置文件
return [
'components' => [
'urlManager' => [
'class' => 'yiiwebUrlManager',
'rules' => [
'/admin' => '/admin/index/index',
]
]
]
];
现在我需要以某种方式将当前配置(主要用于 Web 应用程序)与从模块加载的配置合并.最后,我只想在模块配置路由中描述这个模块,并将它们用于漂亮的 url(用户友好的 url).我怎样才能做到这一点?这个例子在我创建 url /admin/index/index
时不起作用,它显示了我 /admin/index/index
但我想要 /admin
如模块规则中所述.
And now I need somehow merge current config (main for web application) with config loaded from module. In end I want describe in module config routes only for this module and use them for pretty urls (user friendly url). How can I do this one? This examples not working when I create url /admin/index/index
, it shows me /admin/index/index
but I want /admin
as mentioned in module rules.
推荐答案
模块的分隔 url 规则在官方文档中提到 这里.
Separating url rules for modules is mentioned in official documentation here.
而且我认为这是一种更优化的方法,与在一个配置文件中合并和声明所有规则不同.
And I think this is more optimum approach unlike merging and declaring all rules in one config file.
规则按照声明的顺序进行解析(这在 此处),因此通过分离,您可以跳过其他模块的 url.在大量规则的情况下,它可以提高性能.
The rules are parsed in order they are declared (this is mentioned here), so with the separation you can skip other modules urls. In case of large amount of rules it can give perfomance boost.
这篇关于模块中的 Yii2 路由定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:模块中的 Yii2 路由定义
基础教程推荐
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01