起因。因?yàn)轫?xiàng)目比較大了之后劃了很多模塊。就使得config下面的路由文件變得很龐大,變得不好維護(hù)。這個(gè)時(shí)候就想如果可以把路由拆分到不同模塊去自己管理,就會(huì)變得清晰很多。
拆了之后項(xiàng)目配置結(jié)構(gòu)如下

新增了一個(gè)modules.php
來(lái)管理模塊的加載
調(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);。
利用反射找到每個(gè)模塊的真實(shí)路徑,然后加載當(dāng)前模塊下的rules.php
文件
每個(gè)模塊的目錄結(jié)構(gòu)

其中Modules.php
是配置當(dāng)前模塊,加載命名空間等。rules.php
為當(dāng)前模塊的下的路由配置
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- YII2框架中使用RBAC對(duì)模塊,控制器,方法的權(quán)限控制及規(guī)則的使用示例
- YII框架模塊化處理操作示例
- Yii中srbac權(quán)限擴(kuò)展模塊工作原理與用法分析
- YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法
- YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例
- YII2框架自定義全局函數(shù)的實(shí)現(xiàn)方法小結(jié)
- YII框架實(shí)現(xiàn)自定義第三方擴(kuò)展操作示例
- Yii2框架自定義驗(yàn)證規(guī)則操作示例
- Yii2實(shí)現(xiàn)自定義獨(dú)立驗(yàn)證器的方法
- 深入淺析yii2-gii自定義模板的方法
- YII2框架中添加自定義模塊的方法實(shí)例分析