charlretief/build-env

Composer 插件,用于从 .env.example 文件构建 .env 文件,具有高级配置管理功能

安装次数:1,377

依赖者: 0

推荐者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

类型:composer-plugin

2.5 2021-06-15 08:07 UTC

This package is not auto-updated.

Last update: 2024-09-17 23:37:53 UTC


README

使用高级配置管理从 .env.example 文件构建 .env 文件,适用于不同项目环境,如本地、测试、预发布、生产。还支持在 ENV 值中动态变量和环境默认值。

安装

使用 composer

composer global require "charlretief/build-env":"^2"

用法

composer build-env [<environment>] [<defaults>] [--set-defaults] [--setup]

多环境构建设置

要为多环境构建设置项目,请运行

composer build-env --setup

运行设置后,新的部分将被添加到 .env.example 中,如下所示

################################################################
# APP_ENV=production
################################################################
#APP_DEBUG=false
#APP_ENV=production

放入这些部分的变量将在目标构建环境与 APP_ENV 注释部分中的名称匹配时使用。该部分的值应该被注释掉,当目标构建环境匹配时,它们将被取消注释。

基本用法

要为本地开发构建基本的 .env 文件,只需运行

composer build-env		

或指定不同的构建环境

composer build-env staging

高级用法 #1 - 固定值

固定值允许对不应被 build-env 替换的值进行本地覆盖。一个可能的用途是秘密管理,例如数据库凭证,您不希望将其提交到 vcs。

要创建本地固定值,只需将它们添加到任何生成的 .env 文件底部以下占位符即可。

################################################################
# Local pinned values                                          #
################################################################
DB_USERNAME="root"
DB_PASSWORD="password123"

添加固定值后,再次运行 composer build-env。它将然后注释掉文件生成的部分中的相同变量,以防止文件中的重复键。

高级用法 #2 - 默认文件

默认文件是另一个“env”文件,它允许使用默认值覆盖 .env.example 中的键。

这对于需要始终在所有 .env 文件中设置相同主机名的 CI/CD 流程很有用。它还可以作为秘密管理的替代方案,用于诸如数据库凭证之类的项目,您不希望将其提交到 vcs。

例如,要始终覆盖您的 DB_HOST,创建一个名为 .env.defaults(可以是任何文件名)的文件,内容如下

DB_HOST="127.0.0.1"

然后生成的 .env 文件将始终具有此 DB_HOST 的值。

composer build-env local .env.defaults

要记住下一次运行时使用的默认文件,请添加 --set-defaults 参数

composer build-env local .env.defaults --set-defaults

高级用法 #3 - 占位符变量替换

在 .env.example 文件中,可以有双大括号中的占位符变量,如 {{myvar}},如果它们存在于默认文件中,将被替换为默认文件中的值。

示例

CONTACT_EMAIL={{EMAIL}}
APP_URL="http://{{myvar}}.local.dev"

版本 2

build-env 版本 1 现已弃用,与其相关的实验性 .env.json 文件格式也已弃用。但是,版本 2 将保持完全向后兼容,并读取 .env.json 文件格式。