Yii2 modules模块路由美化

最近在写项目的时候为了降低项目的耦合度,很多模块都独立出来一个模块(modules)。

随之带来了几个问题

问题一

modules配置增加

采用了单独文件(modules.php)维护:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$modules = [
'base' => [
'class' => 'api\modules\base\Module',
],
'user' => [
'class' => 'api\modules\user\Module',
],
'admin' => [
'class' => 'mdm\admin\Module',
],
'system' => [
'class' => 'api\modules\system\Module',
]
];
return $modules;

问题二

modules增加了以后对应的命名空间也多了起来,路由看起来就不太美丽了。

解决方案采用了配置路由是controller加key的方案。配置好了以后就由原来的
/system/systems/startup-config改为了/system/startup-config

1
2
3
4
5
6
7
8
9
10
$rules = [
[
'class' => 'yii\rest\UrlRule',
'controller' => ['system' => 'system/system'],
'extraPatterns' => [
'GET startup-config' => 'startup-config',
]
],
];
return $rules;

坚持原创技术分享,您的支持将鼓励我继续创作!