2.1 PhalApi 2.x 配置

2018-07-28 21:23 更新

配置

配置文件說(shuō)明

默認(rèn)情況下,項(xiàng)目里會(huì)有以下幾個(gè)配置文件:

$ tree ./config/
./Config/
├── app.php
├── dbs.php
├── di.php
└── sys.php

其中app.php為項(xiàng)目應(yīng)用配置;dbs.php為分布式存儲(chǔ)的數(shù)據(jù)庫(kù)配置;sys.php為不同環(huán)境下的系統(tǒng)配置。這三個(gè)文件都是用于存放配置信息,可通過(guò)\PhalApi\DI()->config進(jìn)行讀取。

值得注意的是,./config/di.php文件則屬于依賴(lài)注入配置文件,用于配置需在\PhalApi\DI()容器中注冊(cè)的服務(wù)資源。

配置的簡(jiǎn)單讀取

默認(rèn)已注冊(cè)配置組件服務(wù),名稱(chēng)是\PhalApi\DI()->config。

// 配置
$di->config = new FileConfig(API_ROOT . '/config');

假設(shè)app.php配置文件里有:

return array(
    'version' => '1.1.1',
    'email' => array(
        'address' => 'chanzonghuang@gmail.com',
    );
);

可以分別這樣根據(jù)需要獲取配置:

// app.php里面的全部配置
\PhalApi\DI()->config->get('app');                //返回:array( ... ... )


// app.php里面的單個(gè)配置
\PhalApi\DI()->config->get('app.version');        //返回:1.1.1


// app.php里面的多級(jí)配置
\PhalApi\DI()->config->get('app.email.address');  //返回:'chanzonghuang@gmail.com'

其他配置文件的讀取類(lèi)似,你也可以根據(jù)需要添加新的配置文件。

讀取失敗與默認(rèn)值

當(dāng)一個(gè)配置不存在時(shí),返回NULL。例如:

\PhalApi\DI()->config->get('app.not_found');      //返回:NULL

當(dāng)需要指定默認(rèn)值時(shí),可通過(guò)第二個(gè)參數(shù)指定。例如:

\PhalApi\DI()->config->get('app.not_found', 404); //返回:404

使用Yaconf擴(kuò)展快速讀取配置

Yaconf擴(kuò)展需要PHP 7及以上版本,并且需要先安裝Yaconf擴(kuò)展。

溫馨提示:Yaconf擴(kuò)展的安裝請(qǐng)參考laruence/yaconf。

安裝部署完成后,先重新注冊(cè)\PhalApi\DI()->config

// 配置
$di->config = new PhalApi\Config\YaconfConfig();

然后,便和正常的配置一樣使用。

// 相當(dāng)于Yaconf::get("foo")
\PhalApi\DI()->config->get('foo');


//相當(dāng)于Yaconf::has("foo")
\PhalApi\DI()->config->has('foo'); 

需要注意的是,使用Yaconf擴(kuò)展與默認(rèn)的文件配置的區(qū)別的是,配置文件的目錄路徑以及配置文件的格式。當(dāng)然也可以把Yaconf擴(kuò)展的配置目錄路徑設(shè)置到PhalApi的配置目錄./config。

擴(kuò)展:其他配置讀取方式

如果需要使用其他方式讀取配置,可根據(jù)實(shí)情需要,實(shí)現(xiàn)PhalApi\Config接口,然后在./config/di.php文件重新注冊(cè)\PhalApi\DI()->config即可。

例如數(shù)據(jù)庫(kù)配置,這樣可以支持不發(fā)布代碼的情況下進(jìn)行配置更改。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)