#env #dotenv #php #symfony

darkweb-dotenv

一个通过 .env 环境文件简化配置的库

1 个不稳定版本

0.1.0-beta12020 年 8 月 2 日

#1084开发工具

MIT 许可证

23KB
321

Dotenv 组件

Dotenv 组件解析 .env 文件,使存储在其中的环境变量可通过 std::env 访问。

安装

将依赖项添加到您的 Cargo.toml

[dependencies]
darkweb-dotenv = "^1.0"

使用方法

敏感信息和与环境相关的设置应定义为环境变量(如 十二要素应用 所建议)。使用 .env 文件存储这些环境变量,可以通过将它们保存在一个“标准”位置,并且与您所使用的技术栈无关,来简化开发和 CI 管理。

# .env
DB_USER=root
DB_PASS=pass

通过 Dotenv::load() 在您的应用程序中加载 .env 文件

use darkweb_dotenv::Dotenv;

let mut dotenv = Dotenv::new();
dotenv.load(".env").unwrap();

在您的代码中使用 std::env 访问值

let db_user = std::env::var("DB_USER").unwrap();

load() 方法永远不会覆盖现有的环境变量。如果您需要覆盖它们,请使用 overload() 方法

// ...
dotenv.overload(".env").unwrap();

当您使用 Dotenv 组件时,您可能会注意到,您可能希望根据您正在工作的环境有不同的文件。通常这种情况发生在本地开发或持续集成中,您可能希望为您的 testdev 环境有不同的文件。

您可以使用 Dotenv::load_env() 来简化此过程

// ...
dotenv.load_env(".env", "APP_ENV", "dev").unwrap();

然后,Dotenv 组件将查找正确的 .env 文件以加载。如果定义了环境变量 APP_ENV,则使用其值来加载特定于环境文件。如果未定义变量,则假定 APP_ENVdev

如果存在以下文件,则将加载它们,后者的优先级高于前者

  • .env --> 提交的环境默认值
  • .env.local --> 未提交的文件,带有本地覆盖
  • .env.{APP_ENV} --> 提交的环境特定默认值
  • .env.{APP_ENV}.local --> 未提交的环境特定本地覆盖

许可证

Dotenv 使用 MIT 许可证授权 - 详细内容请参阅 LICENSE 文件。

依赖项

~2–3MB
~53K SLoC