zendframework/zend-config-aggregator

此包已被弃用,不再维护。作者建议使用laminas/laminas-config-aggregator包。

轻量级库,用于收集和合并来自不同源配置

1.2.0 2019-12-27 22:57 UTC

This package is auto-updated.

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


README

仓库弃用时间:2019-12-31

此仓库已迁移至 laminas/laminas-config-aggregator

Build Status Coverage Status

聚合和合并来自各种格式的配置。支持缓存以实现生产环境中的快速引导。

使用方法

独立的 ConfigAggregator 可以用于合并基于 PHP 的配置文件

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

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

var_dump($aggregator->getMergedConfig());

使用此提供者,每个文件应返回一个 PHP 数组

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

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

结果

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

配置按传入的顺序合并,晚些时候的条目具有优先权。

zend-config 一起,zend-config-aggregator 还可以用于加载不同格式的配置,包括 YAML、JSON、XML 或 INI

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

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

有关更多详细信息,请参阅文档