env

package module
v0.0.0-...-6320351 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2024 License: MIT Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func All

func All() map[string]string

All 返回所有值

func Bool

func Bool(name string, value ...bool) bool

func Bytes

func Bytes(name string, value ...[]byte) []byte

Bytes 取二进制值

func Duration

func Duration(name string, value ...time.Duration) time.Duration

func Exists

func Exists(name string) bool

Exists 配置是否存在

func Fill

func Fill(structure any) error

Fill 将环境变量填充到指定结构体

func Init

func Init(root ...string) error

Init 加载运行目录下的 .env 文件

func InitWithDir

func InitWithDir(dir string) (err error)

InitWithDir 加载指定录下的 .env 文件

func Int

func Int(name string, value ...int) int

Int 取整型值

func IsEnv

func IsEnv(env string) bool

IsEnv 判断应用环境是否与给出的一致

func List

func List(name string, fallback ...[]string) []string

List 将值按 `,` 分割并返回

func Load

func Load(filenames ...string) error

Load 加载指定的环境变量文件

func Lookup

func Lookup(name string) (string, bool)

Lookup 查看配置

func Map

func Map(prefix string) map[string]string

func Path

func Path(path ...string) string

Path 基于初始化目录获取目录

func String

func String(name string, value ...string) string

String 取字符串值

func Where

func Where(filter func(name string, value string) bool) map[string]string

Types

type Environ

type Environ interface {
	Signer
	// Load 加载定义环境变量的文件
	Load(filenames ...string) error
	// Signed 返回复合一个规则的签名查询器
	Signed(prefix, category string) Signer
	// Clean 清理缓存的所有数据
	Clean()
}

func New

func New() Environ

type Signer

type Signer interface {
	// Lookup 返回指定键的数据,只有存在指定的环境变量并且其值不为空时,
	// 第二个返回值为 true,其它情况下,均返回 false,与方法 Exists 有所区别。
	Lookup(key string) (string, bool)
	// Exists 判断指定键的数据是否存在
	// 只要存在键名就返回 true,不存在返回 false。
	Exists(key string) bool
	// String 返回指定键的数据的字符串形式,当数据不存在或值为空时返回默认值
	String(key string, fallback ...string) string
	// Bytes 返回指定键的数据的字节切片值,当数据不存在或值为空时返回默认值
	Bytes(key string, fallback ...[]byte) []byte
	// Int 返回指定键的数据的整数值,当数据不存在或值为空时返回默认值
	Int(key string, fallback ...int) int
	// Duration 返回指定键的数据的时长值,当数据不存在或值为空时返回默认值
	Duration(key string, fallback ...time.Duration) time.Duration
	// Bool 返回指定键的数据的布尔值,当数据不存在或值为空时返回默认值
	Bool(key string, fallback ...bool) bool
	// List 返回指定键的数据的字符串列表(使用英文逗号分割),当数据不存在或值为空时返回默认值
	List(key string, fallback ...[]string) []string
	// Map 将具体相同前缀的键的数据聚合起来返回
	Map(prefix string) map[string]string
	// Where 返回通过自定义函数过滤的数据
	Where(filter func(name, value string) bool) map[string]string
	// Fill 使用环境变量填充结构体
	Fill(structure any) error
}

Signer 签名查询器

用于操作相同前缀但需要区分不同场景的环境变量时十分有用,比如 我们通过环境变量文件配置缓存配置

CACHE_DRIVER=redis
CACHE_DATABASE=1
CACHE_SCOPE=app:
CACHE_BOOK_DATABASE=10
CACHE_BOOK_SCOPE=app:books:

那么我们就可以十分方便的使用:

cache := env.Signed("CACHE", "BOOK")
cache.String("DRIVER") // redis
cache.Int("DATABASE")  // 10
cache.String("SCOPE")  // app:books:

这样就方便我们对环境变量简单分组分场景使用了。

func Signed

func Signed(prefix, category string) Signer

Jump to

Keyboard shortcuts

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