Config
Component for fetching, merging, and validating configuration from various sources.
Introduction
Whenever you have various environments for multiple purposes: production, staging, test, local and more the need arises to keep the configuration of those consistent across possibly different platforms like local environments and some external storage like AWS Simple Systems Manager and not to fail during critical deploy.
This component allows you to keep it tight in one source with a predefined yaml solution.
Installation
composer require piotrkreft/config
Usage
Configuration
disable
flag.
CLI
Validation of entries:
vendor/bin/pk-config -c config.yaml validate dev
Displaying of entries:
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
It's possible to use the component as a Symfony Bundle.
Just make sure you have symfony/http-kernel
installed and add PK\Config\PKConfigBundle
to your application Kernel.
If used as such commands will receive pk:config:
and can be used like:
bin/console pk:config:validate dev
Adapters
To be able to use a different configuration sources adapters are needed. By default, package provides:
- aws_ssm (multiple)(
PK\Config\StorageAdapter\{AwsSsm, AwsSsmByPath}
) - for AWS Simple Systems Manager parameters - local_env (
PK\Config\StorageAdapter\LocalEnv
) - for local environment variables
and each of those is available to be instantiated via component configuration.
If needed a new adapter can be easily created. Just remember to interface it with PK\Config\StorageAdapterInterface
and to instantiate it.
Testing
composer test
Static checks issues fix
composer fix
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see LICENSE for more information.