欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

YII分模塊加載路由的實(shí)現(xiàn)方法

 更新時(shí)間:2018年10月01日 09:43:48   作者:舊夢(mèng)發(fā)癲  
這篇文章主要介紹了YII分模塊加載路由的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

起因。因?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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論