以下常用方法列表,文档更新可能滞后于代码新特性,更多的方法及示例请参考代码文档:https://pkg.go.dev/github.com/gogf/gf/v2/os/gcfg |
GetWithEnv
GetWithEnv
方法会先从默认的配置文件中获取配置数据,获取为空的时候,将会去当前的环境变量中进行获取。需要注意的是名称命名转换规则:.
字符转换为_
字符。_
字符转换为.
字符。格式:
GetWithEnv(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error) |
示例:
func ExampleConfig_GetWithEnv() { var ( key = `env.test` ctx = gctx.New() ) v, err := g.Cfg().GetWithEnv(ctx, key) if err != nil { panic(err) } fmt.Printf("env:%s\n", v) if err = genv.Set(`ENV_TEST`, "gf"); err != nil { panic(err) } v, err = g.Cfg().GetWithEnv(ctx, key) if err != nil { panic(err) } fmt.Printf("env:%s", v) // Output: // env: // env:gf } |
GetWithCmd
GetWithCmd
方法与GetWithEnv
方法类似,也是先从默认的配置对象中获取配置数据,但是获取为空的时候,是去命令行中获取配置信息。格式:
GetWithCmd(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error) |
示例:
func ExampleConfig_GetWithCmd() { var ( key = `cmd.test` ctx = gctx.New() ) v, err := g.Cfg().GetWithCmd(ctx, key) if err != nil { panic(err) } fmt.Printf("cmd:%s\n", v) // Re-Initialize custom command arguments. os.Args = append(os.Args, fmt.Sprintf(`--%s=yes`, key)) gcmd.Init(os.Args...) // Retrieve the configuration and command option again. v, err = g.Cfg().GetWithCmd(ctx, key) if err != nil { panic(err) } fmt.Printf("cmd:%s", v) // Output: // cmd: // cmd:yes } |
MustGetWithCmd
MustGetWithCmd
方法与GetWithCmd
方法类似,该方法只会返回配置内容,一旦内部发生任何错误,将会有panic。
格式:
MustGetWithCmd(ctx context.Context, pattern string, def ...interface{}) *gvar.Var |
示例:
func ExampleConfig_MustGetWithCmd() { var ( key = `cmd.test` ctx = gctx.New() ) v := g.Cfg().MustGetWithCmd(ctx, key) fmt.Printf("cmd:%s\n", v) // Re-Initialize custom command arguments. os.Args = append(os.Args, fmt.Sprintf(`--%s=yes`, key)) gcmd.Init(os.Args...) // Retrieve the configuration and command option again. v = g.Cfg().MustGetWithCmd(ctx, key) fmt.Printf("cmd:%s", v) // Output: // cmd: // cmd:yes } |
MustGetWithEnv
MustGetWithEnv
方法与GetWithEnv
方法类似,该方法只会返回配置内容,一旦内部发生任何错误,将会有panic。
格式:
MustGetWithEnv(ctx context.Context, pattern string, def ...interface{}) *gvar.Var |
示例:
func ExampleConfig_MustGetWithEnv() { var ( key = `env.test` ctx = gctx.New() ) v := g.Cfg().MustGetWithEnv(ctx, key) fmt.Printf("env:%s\n", v) if err := genv.Set(`ENV_TEST`, "gf"); err != nil { panic(err) } v = g.Cfg().MustGetWithEnv(ctx, key) fmt.Printf("env:%s", v) // Output: // env: // env:gf } |
Data
Data
方法从配置对象中获取配置数据,组装成map[string]interface{}
类型。格式:
Data(ctx context.Context) (data map[string]interface{}, err error) |
示例:
func ExampleConfig_Data() { ctx := gctx.New() content := ` v1 = 1 v2 = "true" v3 = "off" v4 = "1.23" array = [1,2,3] [redis] disk = "127.0.0.1:6379,0" cache = "127.0.0.1:6379,1" ` c, err := gcfg.New() if err != nil{ panic(err) } c.GetAdapter().(*gcfg.AdapterFile).SetContent(content) data, err := c.Data(ctx) if err != nil{ panic(err) } fmt.Println(data) // Output: // map[array:[1 2 3] redis:map[cache:127.0.0.1:6379,1 disk:127.0.0.1:6379,0] v1:1 v2:true v3:off v4:1.23] } |
MustData
MustData
方法从配置对象中获取配置数据,组装成map[string]interface{}
类型。当该方法内部产生错误时不会返回错误,而是直接panic。
格式:
MustData(ctx context.Context) map[string]interface{} |
示例:
func ExampleConfig_MustData() { ctx := gctx.New() content := ` v1 = 1 v2 = "true" v3 = "off" v4 = "1.23" array = [1,2,3] [redis] disk = "127.0.0.1:6379,0" cache = "127.0.0.1:6379,1" ` c, err := gcfg.New() if err != nil{ panic(err) } c.GetAdapter().(*gcfg.AdapterFile).SetContent(content) data := c.MustData(ctx) fmt.Println(data) // Output: // map[array:[1 2 3] redis:map[cache:127.0.0.1:6379,1 disk:127.0.0.1:6379,0] v1:1 v2:true v3:off v4:1.23] } |
Get
Get
方法从配置对象中获取配置数据,返回gvar
泛型对象。格式:
Get(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error) |
示例:
func ExampleConfig_Get() { ctx := gctx.New() content := ` v1 = 1 v2 = "true" v3 = "off" v4 = "1.23" array = [1,2,3] [redis] disk = "127.0.0.1:6379,0" cache = "127.0.0.1:6379,1" ` c, err := gcfg.New() if err != nil{ panic(err) } c.GetAdapter().(*gcfg.AdapterFile).SetContent(content) data,err := c.Get(ctx,"redis") if err != nil { panic(err) } fmt.Println(data) // Output: // {"cache":"127.0.0.1:6379,1","disk":"127.0.0.1:6379,0"} } |
MustGet
MustGet
方法与Get
类似,也是配置对象中获取配置数据,组装成gvar
结构,但是返回参数只有一个:*gvar.Var
error
的情况下,会直接panic
,需要做好异常捕获措施。格式:
MustGet(ctx context.Context, pattern string, def ...interface{}) *gvar.Var |
示例:
func ExampleConfig_MustGet() { ctx := gctx.New() content := ` v1 = 1 v2 = "true" v3 = "off" v4 = "1.23" array = [1,2,3] [redis] disk = "127.0.0.1:6379,0" cache = "127.0.0.1:6379,1" ` c, err := gcfg.New() if err != nil{ panic(err) } c.GetAdapter().(*gcfg.AdapterFile).SetContent(content) data := c.MustGet(ctx,"redis") fmt.Println(data) // Output: // {"cache":"127.0.0.1:6379,1","disk":"127.0.0.1:6379,0"} } |
GetAdapter
GetAdapter
方法是获取当前运行的gcfg
适配器信息,关于适配器相关,可以请点击配置管理-接口化设计格式:
GetAdapter() Adapter |
示例:
func ExampleConfig_GetAdapter() { c, err := gcfg.New() if err != nil{ panic(err) } adapter := c.GetAdapter() fmt.Println(adapter) // Output: // &{config.toml 0xc00014d720 0xc000371880 false} } |
SetAdapter
SetAdapter
方法是设置当前运行的gcfg
适配器信息,关于适配器相关,可以请点击配置管理-接口化设计格式:
SetAdapter(adapter Adapter) |
示例:
func ExampleConfig_SetAdapter() { c, err := gcfg.New() if err != nil{ panic(err) } adapter := c.GetAdapter() c.SetAdapter(adapter) fmt.Println(adapter) // Output: // &{config.toml 0xc00014d720 0xc000371880 false} } |