piotrkreft / config
从各种来源获取、合并和验证配置的组件
v0.7.0
2024-03-01 12:17 UTC
Requires
- php: >=7.2.5
- symfony/config: ^4.2|^5.0
- symfony/console: ^3.4|^4.0|^5.0
- symfony/dependency-injection: ^4.0|^5.0
- symfony/polyfill-php80: ^1.15
- symfony/yaml: ^4.0|^5.0
Requires (Dev)
- aws/aws-sdk-php: ^3.0
- composer/package-versions-deprecated: ^1.1
- piotrkreft/ci: ^0.4
- symfony/framework-bundle: ^4.0|^5.0
- symfony/http-kernel: ^4.0|^5.0
Suggests
- aws/aws-sdk-php: For using AWS Simple Systems Manager parameters
- symfony/http-kernel: For using the component as Symfony Bundle
README
从各种来源获取、合并和验证配置的组件。
简介
每当您有多个环境用于多种目的:生产、预发布、测试、本地等,就需要保持这些配置在可能的不同平台(如本地环境和某些外部存储,如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)。有关更多信息,请参阅许可证。