piotrkreft/config

从各种来源获取、合并和验证配置的组件

v0.7.0 2024-03-01 12:17 UTC

This package is auto-updated.

Last update: 2024-08-30 13:20:59 UTC


README

Tests Coverage Status Mutation testing badge Scrutinizer Code Quality

从各种来源获取、合并和验证配置的组件。

简介

每当您有多个环境用于多种目的:生产、预发布、测试、本地等,就需要保持这些配置在可能的不同平台(如本地环境和某些外部存储,如AWS Simple Systems Manager)之间的一致性,以避免在关键部署期间失败。

此组件允许您使用预定义的yaml解决方案在一个源中紧密管理。

安装

composer require piotrkreft/config

使用

配置

示例配置

ℹ️ 在envs作用域内声明的变量优先于全局变量。

ℹ️ 可以使用disable标志在特定环境中禁用全局变量。

命令行界面(CLI)

条目验证

vendor/bin/pk-config -c config.yaml validate dev

显示条目

vendor/bin/pk-config -c config.yaml display dev

PHP

use PK\Config\ConfigFactory;

$config = ConfigFactory::create(realpath('config.yaml'));

$config->validate('dev');

$config->fetch('dev');

Symfony Bundle

可以将组件用作Symfony Bundle。只需确保已安装symfony/http-kernel,并将PK\Config\PKConfigBundle添加到您的应用程序Kernel中。

如果这样使用,命令将接收pk:config:,可以像下面这样使用:

bin/console pk:config:validate dev

适配器

为了能够使用不同的配置源适配器,需要适配器。默认情况下,包提供以下适配器:

  • aws_ssm (多个)(PK\Config\StorageAdapter\{AwsSsm, AwsSsmByPath}) - 用于AWS Simple Systems Manager参数
  • local_env (PK\Config\StorageAdapter\LocalEnv) - 用于本地环境变量

并且每个都可以通过组件配置进行实例化。

如果需要,可以轻松创建新的适配器。只需记住将其与PK\Config\StorageAdapterInterface接口进行交互,并对其进行实例化。

ℹ️ 每个环境中的适配器顺序也是优先级。如果第一个适配器提供了值,则后续的将被忽略。

ℹ️ 如果适配器分配了多个选项,则可以使用多个不同实例进行配置。如果这样,每个都可以在env.adapters中引用,例如 {adapter}.{name} (即 aws_ssm.default)

测试

composer test

静态检查问题修复

composer fix

变更日志

有关最近更改的更多信息,请参阅变更日志

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证