时间:2021-05-25
起因。因为项目比较大了之后划了很多模块。就使得config下面的路由文件变得很庞大,变得不好维护。这个时候就想如果可以把路由拆分到不同模块去自己管理,就会变得清晰很多。
拆了之后项目配置结构如下
新增了一个modules.php来管理模块的加载
调整之前 web.php的模块加载配置如下
'modules' => [ 'setup' => [ 'class' => 'appcomponents\modules\setup\Module', ], 'shareorder' => [ 'class' => 'appcomponents\modules\shareorder\Module', ],]调整之后 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);。利用反射找到每个模块的真实路径,然后加载当前模块下的rules.php文件
每个模块的目录结构
其中Modules.php是配置当前模块,加载命名空间等。rules.php为当前模块的下的路由配置
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Yii实现自动加载类地图的方法。分享给大家供大家参考。具体如下:Yii继承的一个静态属性$classMap,可以用于Yii的自动加载类地图.数组中
本文实例分析了Yii2中YiiBase自动加载类、引用文件的方法。分享给大家供大家参考,具体如下:在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现
本文实例讲述了Python实现动态加载模块、类、函数的方法。分享给大家供大家参考,具体如下:动态加载模块:方式1:系统函数__import__()方式2:imp
前面的话本文将使用NodeJS实现较复杂应用的路由功能结构项目结构如下代码如下功能【router.js】//加载所需模块varhttp=require('htt
本文实例讲述了Yii2.0实现生成二维码功能。分享给大家供大家参考,具体如下:通过composer安装:1.下面的方法是通过composer加载phpcompo