datto / parameter-auto-env
Composer 插件,以添加对 "env-map": "auto" 的支持
Requires
- php: >=5.3.3
- composer-plugin-api: ^1.1
- incenteev/composer-parameter-handler: ~1.0|~2.0
- symfony/yaml: ~2.3|~3.0
Requires (Dev)
- composer/composer: 1.0.*@dev
- squizlabs/php_codesniffer: >=1.5.0
This package is not auto-updated.
Last update: 2021-09-17 13:10:58 UTC
README
Composer 插件,为 Incenteev/ParameterHandler 添加对 "env-map": "auto"
的支持
这允许在 CI 工作机上配置值为环境变量但不在开发或生产机器上设置时进行简单部署。开发者可以继续使用他们原有的参数工作流程。
安装
composer req datto/parameter-auto-env
插件安装后,您现在可以在 extra.incenteev-parameters
内使用新的配置选项
"env-map": "auto"
以启用对文件的自动映射环境变量到参数"auto-env-prefix": ""
所有环境变量的可选前缀(默认为空)"auto-env-fullname": true
使用变量名称的完整名称,例如parameters.database_host
而不是database_host
(默认为 true)
基本示例
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": "auto"
}
与 run-script 一起使用
"env-map": "auto"
将自动应用于包含对 Incenteev/ParameterHandler
调用的任何 Composer 安装或更新事件。但是,为了在其它事件或手动脚本执行时工作,您必须在 buildParameters 调用之前显式添加对 buildMap 的调用到您的脚本对象中。例如。
"scripts": {
"update-parameters": [
"Datto\\Composer\\ParameterAutoEnv\\AutoEnvPlugin::buildMap",
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
],
"post-install-cmd": [
"@update-parameters"
],
"post-update-cmd": [
"@update-parameters"
]
}
当运行 composer run-script update-parameters
时,执行将正确进行。
环境变量名称
将尝试将配置文件中检测到的每个参数通过具有相似名称的环境变量来自动设置。这些名称将是大写,并且任何 .
都将被替换为两个 _
。例如
parameters.secret_key
将期望PARAMETERS__SECRET_KEY
parameters.api-url
将期望PARAMETERS__API-URL
parameters.database.name
将期望PARAMETERS__DATABASE__NAME
可以运行 composer auto-env-check
命令来检查预期的环境变量名称。
部署环境
环境变量作为内联 Yaml 值解析,并遵循 Incenteev/ParameterHandler 中 env-map 参数的标准行为。
此插件提供 composer 命令 composer auto-env-check
,以确保运行时所有参数都有对应的环境变量,如果成功则返回 0,如果缺少任何则返回 1。这可以在 CI 管道的测试阶段运行。
混合环境
如果文件中存在任何参数,则必须在部署时自动映射所有参数。如果需要异常,则应将这些异常放置在另一个没有 "env-map": "auto"
设置的单独文件中,请参阅: 管理多个忽略的文件
示例
"incenteev-parameters": [
{
"file": "app/config/parameters.yml"
},
{
"file": "app/config/secrets.yml",
"env-map": "auto"
}
]