You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 10 Next »
gcfg集成到了gf框架的单例管理器中,可以方便地通过g.Cfg()获取默认的全局配置管理对象。同时,我们也可以通过gcfg.Instance包方法获取配置管理对象单例。
gcfg
gf
g.Cfg()
gcfg.Instance
g.Cfg
我们来看一个示例,演示如何读取全局配置的信息。需要注意的是,全局配置是与框架相关的,因此统一使用g.Cfg()进行获取。以下是一个默认的全局配置文件,包含了模板引擎的目录配置以及MySQL数据库集群(两台master)的配置。
master
package main import ( "fmt" "github.com/gogf/gf/frame/g" ) func main() { fmt.Println(g.Cfg().GetString("viewpath")) fmt.Println(g.Cfg().GetString("database.default.0.host")) }
以上示例为读取数据库的第一个配置的host信息。运行后输出:
/home/www/templates/ 127.0.0.1
可以看到,我们可以通过g.Cfg()方法获取一个全局的配置管理器单例对象。配置文件内容可以通过英文“.”号进行层级访问(数组默认从0开始),pattern参数database.default.0.host表示读取database配置项中default数据库集群中的第0项数据库服务器的host数据。
.
pattern
database.default.0.host
database
default
0
host
当然也可以独立使用gcfg包,通过Instance方法获取单例对象。
Instance
package main import ( "fmt" "github.com/gogf/gf/os/gcfg" ) func main() { fmt.Println(gcfg.Instance().GetString("viewpath")) fmt.Println(gcfg.Instance().GetString("database.default.0.host")) }
为方便多文件场景下的配置文件调用,简便使用并提高开发效率,因此当给定的单例名称对应的toml配置文件在配置目录中存在时,将自动设置该单例对象的默认配置文件为该文件。
toml
例如:
config.toml
config.yaml
config.json
config.ini
config.xml
g.Cfg("redis")
redis.toml
redis.yaml
redis.json
redis.ini
redis.xml