datto/parameter-auto-env

此包已被废弃,不再维护。未建议替代包。

Composer 插件,以添加对 "env-map": "auto" 的支持

安装数: 2,033

依赖: 0

建议者: 0

安全性: 0

星标: 2

关注者: 8

分支: 1

开放问题: 0

类型:composer-plugin

1.2.1 2018-01-26 10:51 UTC

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"
    }
]