Fecshop 配置結構

2018-05-24 14:14 更新

Fecshop 配置結構

Yii2是多文件配置結構,將多個配置文件分散到各個路徑下,
在初始化的時候最終合成一個配置數(shù)組,這種方式比較靈活,后面的數(shù)組和覆蓋前面的數(shù)組
配置,這種方式非常適合重寫某些組件,服務等

  1. 入口文件加載的配置文件列表:

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/../../../common/config/main.php'),
    require(__DIR__ . '/../../../common/config/main-local.php'),
    require(__DIR__ . '/../../config/main.php'),
    require(__DIR__ . '/../../config/main-local.php'),
    # fecshop services config
    require(__DIR__ . '/../../../vendor/fancyecommerce/fecshop/config/fecshop.php'),
    # fecshop module config
    require(__DIR__ . '/../../../vendor/fancyecommerce/fecshop/app/appfront/config/appfront.php'),

    
    # thrid part confing

    
    # common modules and services.
    require(__DIR__ . '/../../../common/config/fecshop_local.php'),

     
    # appadmin local modules and services.
    require(__DIR__ . '/../../config/fecshop_local.php')

    
);

對于 yii\helpers\ArrayHelper::merge()函數(shù),可以點擊這里查看具體的介紹: yii2 關于helper類 ArrayHelper::merge() 方法的介紹

merge函數(shù)里面的所有參數(shù)文件,最終合并成一個文件,如果配置文件中含有相同的配置項, 最后面的配置文件中的配置項,將覆蓋前面的配置文件中的配置項。

  1. 各個配置文件的詳細闡述

2.1 require(__DIR__ . '/../../../common/config/main.php'),

這個是Yii2的配置文件,也是各個入口的公用配置,這個文件一般是加入到svn版本庫中的

2.2 require(__DIR__ . '/../../../common/config/main-local.php')

這個是Yii2的配置文件,也是各個入口的公用配置, 里面一般是一些獨有的配置,譬如mysql,mongodb,redis等,因為線上和線下的數(shù)據(jù)庫配置不一樣, 因此,這個文件一般是不加入到svn版本庫中的,

2.3 require(__DIR__ . '/../../config/main.php')

該入口的Yii2的配置文件,一般添加到svn版本庫

2.4 require(__DIR__ . '/../../config/main-local.php')

該入口的Yii2的配置文件,一般不添加到svn版本庫

2.5 require(__DIR__ . '/../../../vendor/fancyecommerce/fecshop/config/fecshop.php')

fecshop的公用配置部分,里面是fecshop的service和component配置。 這個配置文件內容如下:

$services = [];
foreach (glob(__DIR__ . '/services/*.php') as $filename){
    $services = array_merge($services,require($filename));
}


## 組件
$components = [];
foreach (glob(__DIR__ . '/components/*.php') as $filename){
    $components = array_merge($components,require($filename));
}

 
return [
    'components'    => $components,
    'services'      => $services,
    'params'        => [ 

    
    ],
];

他們加載其他文件夾下面的所有php文件進行合并,最終成為一個數(shù)組。

2.6 require(__DIR__ . '/../../../vendor/fancyecommerce/fecshop/app/appfront/config/appfront.php')

fecshop的appfront入口的配置部分

2.7

添加第三方插件庫的配置地址

2.8 require(__DIR__ . '/../../../common/config/fecshop_local.php')

本地用戶用于二開的公用配置文件

2.9 require(__DIR__ . '/../../config/fecshop_local.php') 本地用戶用于二開的appfront的配置文件

綜上,2.8 和 2.9 是用于二開的配置,可以覆蓋上面的其他配置, 因此,您如果想重寫某個組件,某個service,甚至某個module ,可以通過添加配置的方式,重定向到您的路徑中去。

配置文件是fecshop進行二開的重要部分,通過配置文件可以在不修改fecshop核心 源代碼的前提下,修改fecshop和yii2的任意功能。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號