起因。因為項目比較大了之后劃了很多模塊。就使得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
為當前模塊的下的路由配置
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。