Skip to main content
Version: 2.8.x(Latest)

AdapterFile

AdapterFile is the default configuration management implementation in the framework, based on file loading and reading.

Use through g.Cfg Singleton Object

In most scenarios, we can conveniently use the file-based configuration management implementation through the g.Cfg singleton object already encapsulated by the framework. For example:

config.yaml

server:
address: ":8888"
openapiPath: "/api.json"
swaggerPath: "/swagger"
dumpRouterMap: false

database:
default:
link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
debug: true

main.go

package main

import (
"fmt"

"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)

func main() {
var ctx = gctx.New()
fmt.Println(g.Cfg().MustGet(ctx, "server.address").String())
fmt.Println(g.Cfg().MustGet(ctx, "database.default").Map())
}

After running, the terminal output:

:8888
map[debug:true link:mysql:root:12345678@tcp(127.0.0.1:3306)/test]

Use via gcfg.NewWithAdapter

We can also create a configuration management object based on a given Adapter via the configuration component's NewWithAdapter method. Here, we provide an AdapterFile interface object.

config.yaml

server:
address: ":8888"
openapiPath: "/api.json"
swaggerPath: "/swagger"
dumpRouterMap: false

database:
default:
link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
debug: true

main.go

package main

import (
"fmt"

"github.com/gogf/gf/v2/os/gcfg"
"github.com/gogf/gf/v2/os/gctx"
)

func main() {
var ctx = gctx.New()
adapter, err := gcfg.NewAdapterFile("config")
if err != nil {
panic(err)
}
config := gcfg.NewWithAdapter(adapter)
fmt.Println(config.MustGet(ctx, "server.address").String())
fmt.Println(config.MustGet(ctx, "database.default").Map())
}

After running, the terminal output:

:8888
map[debug:true link:mysql:root:12345678@tcp(127.0.0.1:3306)/test]