Documentation ¶
Overview ¶
Package gcfg provides reading, caching and managing for configuration.
Example (MapSliceChange) ¶
package main import ( "fmt" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/internal/intlog" "github.com/gogf/gf/os/gcfg" ) func main() { intlog.SetEnabled(false) defer intlog.SetEnabled(true) // For testing/example only. content := `{"map":{"key":"value"}, "slice":[59,90]}` gcfg.SetContent(content) defer gcfg.RemoveContent() m := g.Cfg().GetMap("map") fmt.Println(m) // Change the key-value pair. m["key"] = "john" // It changes the underlying key-value pair. fmt.Println(g.Cfg().GetMap("map")) s := g.Cfg().GetArray("slice") fmt.Println(s) // Change the value of specified index. s[0] = 100 // It changes the underlying slice. fmt.Println(g.Cfg().GetArray("slice")) }
Output: map[key:value] map[key:john] [59 90] [100 90]
Index ¶
- Constants
- func ClearContent()
- func GetContent(file ...string) string
- func RemoveContent(file ...string)
- func SetContent(content string, file ...string)
- type Config
- func (c *Config) AddPath(path string) error
- func (c *Config) Array() []interface{}
- func (c *Config) Available(file ...string) bool
- func (c *Config) Clear()
- func (c *Config) Contains(pattern string) bool
- func (c *Config) Dump()
- func (c *Config) Get(pattern string, def ...interface{}) interface{}
- func (c *Config) GetArray(pattern string, def ...interface{}) []interface{}
- func (c *Config) GetBool(pattern string, def ...interface{}) bool
- func (c *Config) GetBytes(pattern string, def ...interface{}) []byte
- func (c *Config) GetDuration(pattern string, def ...interface{}) time.Duration
- func (c *Config) GetFileName() string
- func (c *Config) GetFilePath(file ...string) (path string, err error)
- func (c *Config) GetFloat32(pattern string, def ...interface{}) float32
- func (c *Config) GetFloat64(pattern string, def ...interface{}) float64
- func (c *Config) GetFloats(pattern string, def ...interface{}) []float64
- func (c *Config) GetGTime(pattern string, format ...string) *gtime.Time
- func (c *Config) GetInt(pattern string, def ...interface{}) int
- func (c *Config) GetInt16(pattern string, def ...interface{}) int16
- func (c *Config) GetInt32(pattern string, def ...interface{}) int32
- func (c *Config) GetInt64(pattern string, def ...interface{}) int64
- func (c *Config) GetInt8(pattern string, def ...interface{}) int8
- func (c *Config) GetInterfaces(pattern string, def ...interface{}) []interface{}
- func (c *Config) GetInts(pattern string, def ...interface{}) []int
- func (c *Config) GetJson(pattern string, def ...interface{}) *gjson.Json
- func (c *Config) GetJsonMap(pattern string, def ...interface{}) map[string]*gjson.Json
- func (c *Config) GetJsons(pattern string, def ...interface{}) []*gjson.Json
- func (c *Config) GetMap(pattern string, def ...interface{}) map[string]interface{}
- func (c *Config) GetMapStrStr(pattern string, def ...interface{}) map[string]string
- func (c *Config) GetMapToMap(pattern string, pointer interface{}, mapping ...map[string]string) error
- func (c *Config) GetMapToMaps(pattern string, pointer interface{}, mapping ...map[string]string) error
- func (c *Config) GetMapToMapsDeep(pattern string, pointer interface{}, mapping ...map[string]string) error
- func (c *Config) GetString(pattern string, def ...interface{}) string
- func (c *Config) GetStrings(pattern string, def ...interface{}) []string
- func (c *Config) GetStruct(pattern string, pointer interface{}, mapping ...map[string]string) error
- func (c *Config) GetStructs(pattern string, pointer interface{}, mapping ...map[string]string) error
- func (c *Config) GetTime(pattern string, format ...string) time.Time
- func (c *Config) GetUint(pattern string, def ...interface{}) uint
- func (c *Config) GetUint16(pattern string, def ...interface{}) uint16
- func (c *Config) GetUint32(pattern string, def ...interface{}) uint32
- func (c *Config) GetUint64(pattern string, def ...interface{}) uint64
- func (c *Config) GetUint8(pattern string, def ...interface{}) uint8
- func (c *Config) GetVar(pattern string, def ...interface{}) *gvar.Var
- func (c *Config) Map() map[string]interface{}
- func (c *Config) MapToMap(pointer interface{}, mapping ...map[string]string) error
- func (c *Config) MapToMaps(pointer interface{}, mapping ...map[string]string) error
- func (c *Config) Set(pattern string, value interface{}) error
- func (c *Config) SetFileName(name string) *Config
- func (c *Config) SetPath(path string) error
- func (c *Config) SetViolenceCheck(check bool)
- func (c *Config) Struct(pointer interface{}, mapping ...map[string]string) error
- func (c *Config) Structs(pointer interface{}, mapping ...map[string]string) error
Examples ¶
Constants ¶
const ( DefaultName = "config" // DefaultName is the default group name for instance usage. DefaultConfigFile = "config.toml" // DefaultConfigFile is the default configuration file name. )
Variables ¶
This section is empty.
Functions ¶
func GetContent ¶
GetContent returns customized configuration content for specified `file`. The `file` is unnecessary param, default is DefaultConfigFile.
func RemoveContent ¶ added in v1.11.5
func RemoveContent(file ...string)
RemoveContent removes the global configuration with specified `file`. If `name` is not passed, it removes configuration of the default group name.
func SetContent ¶
SetContent sets customized configuration content for specified `file`. The `file` is unnecessary param, default is DefaultConfigFile.
Types ¶
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config is the configuration manager.
func Instance ¶
Instance returns an instance of Config with default settings. The parameter `name` is the name for the instance. But very note that, if the file "name.toml" exists in the configuration directory, it then sets it as the default configuration file. The toml file type is the default configuration file type.
func New ¶
New returns a new configuration management object. The parameter `file` specifies the default configuration file name for reading.
func (*Config) Array ¶ added in v1.16.5
func (c *Config) Array() []interface{}
Array converts current Json object to []interface{}. It returns nil if fails.
func (*Config) Available ¶ added in v1.10.0
Available checks and returns whether configuration of given `file` is available.
func (*Config) Clear ¶
func (c *Config) Clear()
Clear removes all parsed configuration files content cache, which will force reload configuration content from file.
func (*Config) Dump ¶
func (c *Config) Dump()
Dump prints current Json object with more manually readable.
func (*Config) Get ¶
Get retrieves and returns value by specified `pattern`. It returns all values of current Json object if `pattern` is given empty or string ".". It returns nil if no value found by `pattern`.
We can also access slice item by its index number in `pattern` like: "list.10", "array.0.name", "array.0.1.id".
It returns a default value specified by `def` if value for `pattern` is not found.
func (*Config) GetArray ¶
GetArray retrieves the value by specified `pattern`, and converts it to a slice of []interface{}.
func (*Config) GetBool ¶
GetBool retrieves the value by specified `pattern`, converts and returns it as bool. It returns false when value is: "", 0, false, off, nil; or returns true instead.
func (*Config) GetBytes ¶
GetBytes retrieves the value by specified `pattern` and converts it to []byte.
func (*Config) GetDuration ¶
GetDuration retrieves the value by specified `pattern` and converts it to time.Duration.
func (*Config) GetFileName ¶
GetFileName returns the default configuration file name.
func (*Config) GetFilePath ¶ added in v1.15.5
GetFilePath returns the absolute configuration file path for the given filename by `file`. If `file` is not passed, it returns the configuration file path of the default name. It returns an empty `path` string and an error if the given `file` does not exist.
func (*Config) GetFloat32 ¶
GetFloat32 retrieves the value by specified `pattern` and converts it to float32.
func (*Config) GetFloat64 ¶
GetFloat64 retrieves the value by specified `pattern` and converts it to float64.
func (*Config) GetFloats ¶
GetFloats retrieves the value by specified `pattern` and converts it to []float64.
func (*Config) GetGTime ¶
GetGTime retrieves the value by specified `pattern` and converts it to *gtime.Time.
func (*Config) GetInt16 ¶
GetInt16 retrieves the value by specified `pattern` and converts it to int16.
func (*Config) GetInt32 ¶
GetInt32 retrieves the value by specified `pattern` and converts it to int32.
func (*Config) GetInt64 ¶
GetInt64 retrieves the value by specified `pattern` and converts it to int64.
func (*Config) GetInt8 ¶
GetInt8 retrieves the value by specified `pattern` and converts it to int8.
func (*Config) GetInterfaces ¶
GetInterfaces is alias of GetArray. See GetArray.
func (*Config) GetInts ¶
GetInts retrieves the value by specified `pattern` and converts it to []int.
func (*Config) GetJson ¶
GetJson gets the value by specified `pattern`, and converts it to a un-concurrent-safe Json object.
func (*Config) GetJsonMap ¶
GetJsonMap gets the value by specified `pattern`, and converts it to a map of un-concurrent-safe Json object.
func (*Config) GetJsons ¶
GetJsons gets the value by specified `pattern`, and converts it to a slice of un-concurrent-safe Json object.
func (*Config) GetMap ¶
GetMap retrieves and returns the value by specified `pattern` as map[string]interface{}.
func (*Config) GetMapStrStr ¶ added in v1.10.1
GetMapStrStr retrieves and returns the value by specified `pattern` as map[string]string.
func (*Config) GetMapToMap ¶ added in v1.9.3
func (c *Config) GetMapToMap(pattern string, pointer interface{}, mapping ...map[string]string) error
GetMapToMap retrieves the value by specified `pattern` and converts it to specified map variable. See gconv.MapToMap.
func (*Config) GetMapToMaps ¶ added in v1.9.3
func (c *Config) GetMapToMaps(pattern string, pointer interface{}, mapping ...map[string]string) error
GetMapToMaps retrieves the value by specified `pattern` and converts it to specified map slice variable. See gconv.MapToMaps.
func (*Config) GetMapToMapsDeep ¶ added in v1.9.3
func (c *Config) GetMapToMapsDeep(pattern string, pointer interface{}, mapping ...map[string]string) error
GetMapToMapsDeep retrieves the value by specified `pattern` and converts it to specified map slice variable recursively. See gconv.MapToMapsDeep.
func (*Config) GetString ¶
GetString retrieves the value by specified `pattern` and converts it to string.
func (*Config) GetStrings ¶
GetStrings retrieves the value by specified `pattern` and converts it to []string.
func (*Config) GetStruct ¶
GetStruct retrieves the value by specified `pattern` and converts it to specified object `pointer`. The `pointer` should be the pointer to an object.
func (*Config) GetStructs ¶
func (c *Config) GetStructs(pattern string, pointer interface{}, mapping ...map[string]string) error
GetStructs converts any slice to given struct slice.
func (*Config) GetTime ¶
GetTime retrieves the value by specified `pattern` and converts it to time.Time.
func (*Config) GetUint ¶
GetUint retrieves the value by specified `pattern` and converts it to uint.
func (*Config) GetUint16 ¶
GetUint16 retrieves the value by specified `pattern` and converts it to uint16.
func (*Config) GetUint32 ¶
GetUint32 retrieves the value by specified `pattern` and converts it to uint32.
func (*Config) GetUint64 ¶
GetUint64 retrieves the value by specified `pattern` and converts it to uint64.
func (*Config) GetUint8 ¶
GetUint8 retrieves the value by specified `pattern` and converts it to uint8.
func (*Config) Map ¶ added in v1.16.5
Map converts current Json object to map[string]interface{}. It returns nil if fails.
func (*Config) MapToMap ¶ added in v1.16.5
MapToMap converts current Json object to specified map variable. The parameter of `pointer` should be type of *map.
func (*Config) MapToMaps ¶ added in v1.16.5
MapToMaps converts current Json object to specified map variable slice. The parameter of `pointer` should be type of []map/*map.
func (*Config) Set ¶ added in v1.13.2
Set sets value with specified `pattern`. It supports hierarchical data access by char separator, which is '.' in default. It is commonly used for updates certain configuration value in runtime.
func (*Config) SetFileName ¶
SetFileName sets the default configuration file name.
func (*Config) SetPath ¶
SetPath sets the configuration directory path for file search. The parameter `path` can be absolute or relative path, but absolute path is strongly recommended.
func (*Config) SetViolenceCheck ¶
SetViolenceCheck sets whether to perform hierarchical conflict checking. This feature needs to be enabled when there is a level symbol in the key name. It is off in default.
Note that, turning on this feature is quite expensive, and it is not recommended to allow separators in the key names. It is best to avoid this on the application side.