amazium/amz-config

该包已被弃用且不再维护。未建议替代包。

配置聚合器

1.0.1 2019-02-19 17:13 UTC

This package is auto-updated.

Last update: 2020-12-28 18:16:58 UTC


README

以树形结构合并配置文件。子目录和文件作为返回配置数组的键。

假设以下文件结构

  • project.config.php
  • dependencies/
    • factories.php
    • services.php

这将创建一个配置数组,包含根目录中 project.config.php 文件的内容,然后是

$config = [
    // config elements from project.config.php
    'dependencies' => [
        'factories' => <whatever is returned in factories.php>,
        'services' => <whatever is returned in services.php>,
    ],
];

当前支持 yaml、json 和 php 配置数组文件。

安装

通过 composer 安装

composer require amazium/amz-config

显式聚合器工厂

您可以明确告知系统使用哪个聚合器,可以指定一个目录或文件。文件需要能被选定的聚合器解析。

当提供目录时,此扩展名的文件也被包括为根对象的元素。名为 project.config.php 的文件将把其内容放入配置数组的 project 键中。一个结果是,文件和子路径在这个结构中处于同一级别,而当你以文件作为根时,该文件充当根元素。

示例用法

use Amz\Config\AggregateFactory;

$aggregator = AggregatorFactory::createPhpAggregator('/path/to/project.config.php');
$config = $aggregator->aggregate();

// OR:

$aggregator = AggregatorFactory::createPhpAggregator('/path/to');
$config = $aggregator->aggregate();

懒聚合器工厂

可以将根配置文件传递给 AggregatorFactory 工厂的静态 createAggregatorByExtension 方法。这将根据文件扩展名推断正确的聚合器。然后,它将在子目录结构中添加具有相同扩展名的所有配置文件。

示例用法

use Amz\Config\AggregateFactory;

$aggregator = AggregatorFactory::createAggregatorByExtension('/path/to/project.config.php');
$config = $aggregator->aggregate();