更多資料請關注 swoft 系列教程、
小白系列教程 定期連載
基本功能介紹
配置項是隻讀的,不能動態修改.所以不要嘗試著動態修改配置
Swoft2 的配置分為兩類,環境配置和應用配置。
-
env 一般配置一些和環境相關的一些引數,比如執行模式、資源地址
-
config 一般用於配置應用級別的配置以及業務級別的配置
簡單的示例
環境配置說明
在專案的根目錄有一個 .env.example 如果要使用則把檔案修改成 .env,配置就可以在裡面使用。
根目錄下 .env檔案,內容如下
APP_DEBUG = 0
SWOFT_DEBUG = 0
env = test
這裡的 env 屬性定義 在後面會用到.用於區分是什麼環境,這裡定義了測試環境.
環境配置的使用
env(string $key = null, $default = null)
-
$key 配置引數key,如:APP_DEBUG
-
$default 預設引數,當key不存在的時候返回default
env 還有另一個功能,就是可以把作業系統的環境變數載入到記憶體裡面。
echo env('PATH');
輸出作業系統的環境變數 PATH
應用配置說明
應用配置主要用於業務級別的配置
在 app/bean.php 新增如下配置,不新增預設就是應用根目錄下的 config
return [
...
'config' => [
'path' => __DIR__ . '/../config',
'env' => env('env',"dev") //這個我們在環境變數裡宣告瞭,用於不同環境載入不同的配置檔案
],
...
];
可配置項:
-
path 自定配置檔案路徑
-
env 配置當前環境比如 test
應用配置是負責應用裡面的配置管理,負責第三方sdk的配置資訊和開發者定義的配置;應用配置的資料也是由一個bean管理的,如果我們想要配置第三方sdk或者新增自己定義的配置,只需要在 config 目錄新增對應檔案返回一個陣列就可以了。
這裡的配置是全域性的,在應用裡面可直接使用。
config/pay.php
return [
'notify_url' => 'http://127.0.0.1/remote',
];
獲取配置的方式有三種,我們這裡介紹兩種本人推薦的,全域性助手函式和註解,物件獲取不在此介紹,如果需要了解請檢視官方文件
配置使用
全域性助手函式 config()
config(string $key = null, $default = null)
-
$key 配置引數key,如:config/pay.php 獲取方式就是 config(‘pay.notify_url’,’’)
-
$default 預設引數,當key不存在的時候返回default
註解
在要使用配置的地方可以把配置注入到類的成員屬性。
use Swoft\Config\Annotation\Mapping\Config;
/**
* @Config("pay.notify_url")
* @var mixed
*/
private $notify_url;
不同環境相同配置
需要在 bean.php 裡的 config 屬性設定了 env屬性,來定義載入哪些配置
如果想要在不同環境配置不同的配置,例如在測試環境一套配置,生產環境一套配置,我們可以通過資料夾的方式來區分。
測試環境
config/test/time.php
return [
'date' => '2019-11-28 for test'
];
開發環境
config/dev/time.php
return [
'date' => '2019-11-28 for dev'
];
獲取上面的配置的方式 config('time.date')
這個配置使用的配置是 config/dev/time.php; env 配置是在 config 對應的目錄,例如:env 是 test 那麼對應的檔案就是 config/test/time.php
在控制器裡簡單使用
控制檯輸出
本作品採用《CC 協議》,轉載必須註明作者和本文連結
wike2019 個人部落格:http://8code.net/