起因。因為項目比較大了之后劃了很多模塊。就使得config下面的路由文件變得很龐大,變得不好維護(hù)。這個時候就想如果可以把路由拆分到不同模塊去自己管理,就會變得清晰很多。
拆了之后項目配置結(jié)構(gòu)如下
新增了一個modules.php
來管理模塊的加載
調(diào)整之前 web.php
的模塊加載配置如下
'modules' => [
'setup' => [
'class' => 'appcomponents\modules\setup\Module',
],
'shareorder' => [
'class' => 'appcomponents\modules\shareorder\Module',
],
]
調(diào)整之后 web.php
模塊配置如下
'modules' => require (__DIR__).'/modules.php',
modules.php
里面配置如下
return [
'setup' => [
'class' => 'appcomponents\modules\setup\Module',
],
'shareorder' => [
'class' => 'appcomponents\modules\shareorder\Module',
],
];
然后修改rules.php
$default = [
];
$modules = require __DIR__.'./modules.php';
$roles = [];
foreach ($modules as $module)
{
$class = new ReflectionClass($module['class']);
$filePath = $class->getFileName();
$filePath = str_replace('Module','rules',$filePath);
if(file_exists($filePath))
{
$role = require $filePath;
$roles = array_merge($roles,$role);
}
}
return array_merge($roles,$default);。
利用反射找到每個模塊的真實路徑,然后加載當(dāng)前模塊下的rules.php
文件
每個模塊的目錄結(jié)構(gòu)
其中Modules.php
是配置當(dāng)前模塊,加載命名空間等。rules.php
為當(dāng)前模塊的下的路由配置
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- YII2框架中使用RBAC對模塊,控制器,方法的權(quán)限控制及規(guī)則的使用示例
- YII框架模塊化處理操作示例
- Yii中srbac權(quán)限擴(kuò)展模塊工作原理與用法分析
- YII模塊實現(xiàn)綁定二級域名的方法
- YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊操作示例
- YII2框架自定義全局函數(shù)的實現(xiàn)方法小結(jié)
- YII框架實現(xiàn)自定義第三方擴(kuò)展操作示例
- Yii2框架自定義驗證規(guī)則操作示例
- Yii2實現(xiàn)自定義獨立驗證器的方法
- 深入淺析yii2-gii自定義模板的方法
- YII2框架中添加自定義模塊的方法實例分析