使用YII怎么實(shí)現(xiàn)分模塊加載路由?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為濮陽企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,濮陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。項(xiàng)目結(jié)構(gòu)如下
新增了一個(gè)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);。
利用反射找到每個(gè)模塊的真實(shí)路徑,然后加載當(dāng)前模塊下的rules.php
文件
每個(gè)模塊的目錄結(jié)構(gòu)
其中Modules.php
是配置當(dāng)前模塊,加載命名空間等。rules.php
為當(dāng)前模塊的下的路由配置
關(guān)于使用YII怎么實(shí)現(xiàn)分模塊加載路由問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。