起因。因?yàn)轫?xiàng)目比較大了之后劃了很多模塊。就使得config下面的路由文件變得很龐大,變得不好維護(hù)。這個(gè)時(shí)候就想如果可以把路由拆分到不同模塊去自己管理,就會(huì)變得清晰很多。
拆了之后項(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)前模塊的下的路由配置
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:白銀 綏化 崇左 辛集 廊坊 鄂州 太原 衡陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《YII分模塊加載路由的實(shí)現(xiàn)方法》,本文關(guān)鍵詞 YII,分,模塊,加載,路由,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。