YII分模塊加載路由的實(shí)現(xiàn)方法
起因。因?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í)例分析
相關(guān)文章
Yii2創(chuàng)建控制器(createController)方法詳解
這篇文章主要介紹了Yii2創(chuàng)建控制器(createController)的方法,結(jié)合實(shí)例形式分析了Yii創(chuàng)建控制器所使用到的方法、操作步驟與相關(guān)技巧,需要的朋友可以參考下2016-07-07php使用goto實(shí)現(xiàn)自動(dòng)重啟swoole、reactphp、workerman服務(wù)的代碼
這篇文章主要介紹了php使用goto實(shí)現(xiàn)自動(dòng)重啟swoole、reactphp、workerman服務(wù)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04PHP錯(cuò)誤Warning: Cannot modify header information - headers alr
這篇文章主要介紹了PHP錯(cuò)誤Warning: Cannot modify header information - headers already sent by解決方法,需要的朋友可以參考下2014-09-09php操作MongoDB基礎(chǔ)教程(連接、新增、修改、刪除、查詢)
這篇文章主要介紹了php操作MongoDB簡(jiǎn)明教程,包括連接、新增、修改、刪除、查詢等,需要的朋友可以參考下2014-03-03