zendframework/zend-config-aggregator

This package is abandoned and no longer maintained. The author suggests using the laminas/laminas-config-aggregator package instead.

Lightweight library for collecting and merging configuration from different sources

Maintainers

👁 zendframework

Package info

github.com/zendframework/zend-config-aggregator

Forum

Documentation

pkg:composer/zendframework/zend-config-aggregator

Statistics

Installs: 1 656 980

Dependents: 63

Suggesters: 2

Stars: 48

Open Issues: 1

1.2.0 2019-12-27 22:57 UTC

Requires

Suggests

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 8f8568e8a618684c3bd778df75f5bc757b76decd

ZendFrameworkzfconfig-aggregator

This package is auto-updated.

Last update: 2020-01-29 14:48:17 UTC


README

Repository abandoned 2019-12-31

This repository has moved to laminas/laminas-config-aggregator.

👁 Build Status
👁 Coverage Status

Aggregates and merges configuration, from a variety of formats. Supports caching for fast bootstrap in production environments.

Usage

The standalone ConfigAggregator can be used to merge PHP-based configuration files:

use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\PhpFileProvider;

$aggregator = new ConfigAggregator([
 new PhpFileProvider('*.global.php'),
]);

var_dump($aggregator->getMergedConfig());

Using this provider, each file should return a PHP array:

// db.global.php
return [
 'db' => [
 'dsn' => 'mysql:...',
 ], 
];

// cache.global.php
return [
 'cache_storage' => 'redis',
 'redis' => [ ... ],
];

Result:

array(3) {
 'db' =>
 array(1) {
 'dsn' =>
 string(9) "mysql:..."
 }
 'cache_storage' =>
 string(5) "redis"
 'redis' =>
 array(0) {
 ...
 }
}

Configuration is merged in the same order as it is passed, with later entries having precedence.

Together with zend-config, zend-config-aggregator can be also used to load configuration in different formats, including YAML, JSON, XML, or INI:

use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\ZendConfigProvider;

$aggregator = new ConfigAggregator([
 new ZendConfigProvider('config/*.{json,yaml,php}'),
]);

For more details, please refer to the documentation.