charlretief / build-env
Composer 插件,用于从 .env.example 文件构建 .env 文件,具有高级配置管理功能
Requires
- composer-plugin-api: ^1.0.0
- ext-json: *
- vlucas/phpdotenv: >=4.0.0 <6.0.0
Requires (Dev)
- composer/composer: ^1.8
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 文件格式。