|
|
|---|
Swift 4 库,灵感来源于 Ruby dotenv 和 PHP dotenv 项目,用于将环境变量从 .env 文件加载到环境中。
将配置存储在环境中是 十二要素应用 的原则之一。 任何可能在部署环境之间发生变化的配置——例如数据库的资源句柄或外部服务的凭据——都应该从代码中提取到环境变量中。
但是在开发机器或运行多个项目的持续集成服务器上设置环境变量并不总是可行的。 当环境启动时,SwiftDotEnv 从 .env 文件加载变量到 ENV 中。
使用 Swift Package Manager 安装。
此模块的第 2 版已使用 Swift 4.0 进行过测试。 第 1 版已使用 Swift 3.0 和 3.1 进行过测试。
import DotEnv
let env = DotEnv(withFile: ".env")
let host = env.get("DB_HOST") ?? "localhost"
let port = env.getAsInt("DB_PORT") ?? 3306
let isEnabled = env.getAsBool("IS_ENABLED") ?? true
一个 .env 文件的例子如下:
DB_HOST=test.com
DB_PORT=1234
IS_ENABLED=0
有三个 getter 方法:
get() 返回一个 String?getAsInt() 返回一个 Int?getAsBool() 返回一个 Bool?,其中不区分大小写的 "true"、"yes" 和 "1" 的值为 true您还可以使用下标访问来检索字符串版本
let host = env["DB_HOST"] ?? "localhost"
为了方便起见,您可以使用 env.all() 来检索所有环境变量。
请注意,.env 文件是相对于执行二进制文件的目录引用的。
目前对 .env 文件的解析器非常简单,因此不支持多行值。
欢迎贡献! 请将您的更改放在与 master 分开的分支中,并提出 PR。