viper項目地址:https://github.com/spf13/viper
viper是國外大神spf13編寫的開源配置解決方案,viper擁有一下功能以及特性如下:
viper不用擔(dān)心你的文件格式,可以獲取環(huán)境變量,也可以從遠端獲取配置文件,并且還有緩沖機制,功能非常棒非常牛逼,能滿足不同的對配置文件的使用的要求,所以PhalGo采用viper來解決配置問題
PhalGo追求最簡單的使用各個組件所以viper我們只需要初始化就可以開始使用,我們只需要調(diào)用NewConfig函數(shù)需要你傳入兩個參數(shù),一個是你文件相對于項目目錄的相對路徑,比如我在項目目錄下建立的/conf文件目錄就需要填寫conf,第二個就是配置文件文件名,只需要名稱即可,可以不用輸入后綴viper會自動識別.
//初始化配置文件
phalgo.NewConfig("conf", "sys")
比如我們創(chuàng)建了一個sys.toml文件內(nèi)容如下:
強烈推薦使用toml格式,toml格式介紹:http://mlworks.cn/posts/introduction-to-toml/
[system]
port = ":1234"
[dbDefault]
dbHost = "localhost" #數(shù)據(jù)庫連接地址
dbName = "phalgo" #數(shù)據(jù)庫名稱
dbUser = "root" #數(shù)據(jù)庫用戶名
dbPasswd = "" #數(shù)據(jù)庫密碼
dbPort = "3306" #數(shù)據(jù)庫端口號
dbOpenconns_max = 20 #最大連接數(shù)
dbIdleconns_max = 0 #最大空閑連接
dbType = "mysql" #數(shù)據(jù)庫類型
我們就可以簡單的使用
phalgo.Config.GetString("system.port") #返回一個string類型的":1234"
phalgo.Config和"github.com/spf13/viper"是等價的,所以可以通過phalgo.Config來調(diào)用viper提供的方法
phalgo.Config.SetDefault("ContentDir", "content")
phalgo.Config.SetDefault("LayoutDir", "layouts")
phalgo.Config.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"})
viper支持獲取配置的層級關(guān)系,在每個key之間通過"."分割機制,比如上面演示的
phalgo.Config.GetString("system.port")
就是獲取的二級參數(shù)
viper提供很多有意思的功能,可以通過開篇viper項目地址進行了解
更多建議: