vijoni / config-builder

为不同的环境结构配置文件并将它们合并为一个PHP文件。支持使用git-crypt密钥文件加密的文件

2.0.2 2022-03-31 08:14 UTC

This package is auto-updated.

Last update: 2024-09-29 05:57:07 UTC


README

基于组织好的模板配置文件构建特定于PHP环境的配置文件。

使用方法

查看接受测试以获取更多详细信息

示例文件结构

示例配置文件内容(未加密)

// default.yaml
---
config:
  enable_checkout_payment_experiment: true
  database:
    host: ${DATABASE_HOST}
    pass: ${DATABASE_PASS}
    user: ${DATABASE_USER}
    name: ${DATABASE_NAME}

// prod/config.yaml
---
extends:
- '../default.yaml'
- '../_shared/experiments.yaml'

config:

从提供为环境变量的base64编码的git-crypt文件内容构建密钥文件。

echo $DEFAULT_GC_KEY | bin/decode-gckey -o /tmp/git-crypt-default.key
echo $PROD_GC_KEY | bin/decode-gckey -o /tmp/git-crypt-prod.key

构建配置文件。

如果省略了 -k 参数,脚本将不会使用解密。 命令接受多个git-crypt密钥文件路径。 如果提供的密钥文件都无法解密文件,则命令将出错退出。 命令读取环境变量以替换模板的占位符文本。

bin/build-config \
-k /tmp/git-crypt-default.key \
-k /tmp//git-crypt-prod.key \
-c environments/prod/config.yaml \
-o config/config.php

模板

模板可以包含占位符文本 ${VAR_NAME},在构建过程中将用相应的值替换。

您可以将配置组织到多个文件中。 使用 extends 键指定额外的文件。 列表底部的文件将覆盖上面文件提供的值。 在 config 键中提供的值将覆盖来自扩展文件中的值。

支持YAML、JSON、PHP模板。 查看接受测试以获取示例配置文件。