conf

package
v1.3.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2022 License: MIT Imports: 9 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// 已支持的文件后缀
	// FileTOML toml
	FileTOML = ".toml"
	// FileJSON  json
	FileJSON = ".json"
)

Variables

View Source
var Default = NewDefault(nil)

Default 默认的实例,全局的Parse、ParseBytes、Exists等方法均使用该对象

DefaultParserFuncs 所有默认的ParserFunc

Functions

func Exists

func Exists(confName string) bool

Exists 判断是否存在

func Parse

func Parse(confName string, obj interface{}) (err error)

Parse 解析配置,配置文件默认认为在 conf/目录下

如配置文件 conf/abc.toml ,则读取时使用 Parse("abc.toml",&xxx)
推荐使用上述相对文件名老读取配置,这样可通过修改全局应用环境信息的env.ConfDir,来调整配置目录

也支持传入一个绝对路径 或者 相对路径
如  /tmp/test.toml 或者  ./conf/test.toml

func ParseBytes

func ParseBytes(fileExt string, content []byte, obj interface{}) error

ParseBytes 解析bytes

fileExt 是file extension 文件后缀,如.json、.toml

func RegisterBeforeFunc

func RegisterBeforeFunc(name string, fn BeforeFunc) error

RegisterBeforeFunc 注册一个在解析前执行辅助回调方法

name 唯一的名字;fn 回调函数

func RegisterParserFunc

func RegisterParserFunc(fileExt string, fn ParserFunc) error

RegisterParserFunc 注册一个解析器

Types

type BeforeFunc

type BeforeFunc func(conf Conf, content []byte) ([]byte, error)

BeforeFunc 辅助回调方法,在执行ParserFunc前,会先对配置的内容进行解析处理

type Conf

type Conf interface {
	// 读取并解析配置文件
	// confName 支持相对路径和绝对路径
	Parse(confName string, obj interface{}) error
	// 解析bytes内容
	ParseBytes(fileExt string, content []byte, obj interface{}) error
	// 配置文件是否存在
	Exists(confName string) bool
	// 注册一个指定后缀的配置的parser
	// 如要添加 .ini 文件的支持,可在此注册对应的解析函数即可
	RegisterParserFunc(fileExt string, fn ParserFunc) error
	// 注册一个在解析前执行辅助回调方法
	// 先注册的先执行,不能重复
	RegisterBeforeFunc(name string, fn BeforeFunc) error
	// 配置的环境信息
	Env() env.AppEnv
}

Conf 配置解析定义接口

func New

func New(e env.AppEnv) Conf

New 创建一个新的配置解析实例 返回的实例是没有注册任何解析能力的

func NewDefault

func NewDefault(e env.AppEnv) Conf

NewDefault 创建一个新的配置解析实例 会注册默认的配置解析方法和辅助方法

type ParserFunc

type ParserFunc func(bf []byte, obj interface{}) error

ParserFunc 针对特定文件后缀的配置解析方法 当前已经内置了 .toml 和 .json的解析方法

var JSONParserFunc ParserFunc = jsonParserFunc

JSONParserFunc .json配置文件格式解析函数

var TOMLParserFunc ParserFunc = toml.Unmarshal

TOMLParserFunc .toml配置文件格式解析函数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL