mrjgreen/config

此包的最新版本(v2.0.0)没有可用的许可证信息。

基于laravel的配置组件

此包的官方仓库似乎已不存在,因此包已被冻结。

维护者

详细信息

github.com/mrjgreen/config

v2.0.0 2014-11-05 16:56 UTC

This package is not auto-updated.

Last update: 2024-01-15 23:20:21 UTC


README

## PHP 简单配置加载器

根据单个环境设置,从嵌套文件夹中的文件(使用 array_replace_recursive)合并一组php配置数组,以匹配您想要加载的文件夹树。

Build Status Coverage Status

安装

通过 composer - 将包添加到 composer.json 文件中的 require 部分

"require" : {    
    "mrjgreen/config"   : "v1.*"
}

示例

config
|
|____ production
|        |
|        |_______ server1
|        |       |___ redis.php
|        |       |___ database.php
|        |
|        |_______ server2
|        |       |___ database.php
|        |
|        |_______ database.php
|
|____ app.php
|____ database.php
|____ redis.php

<?php
// in database.php

return array(
    'config_value' => 'foo',
    'config_value2' => 'bar'
);
<?php
// in production/database.php

return array(
    'config_value' => 'baz',
);
<?php
// in production/server1/database.php

return array(
    'new_config_only_for_server1' => 'boo',
);
$environment = '';

$config = new Config\Repository(new Config\FileLoader(__DIR__ . '/config'), $environment);

var_dump($config['database']);
/*
array(
   'config_value' => 'foo',
   'config_value2' => 'bar'
);
*/

//________________________________________________________________________

$environment = 'production.server1';

$config = new Config\Repository(new Config\FileLoader(__DIR__ . '/config'), $environment);

var_dump($config['database']);
/*
array(
   'config_value' => 'baz',
   'config_value2' => 'bar',
   'new_config_only_for_server1' => 'boo',
);
*/

点表示法

您可以在配置文件中嵌套数组并通过点表示法访问它们

<?php
// in database.php

return array(
    'connections' => array(
        'local' => array(
            'host' => 'localhost'
        ),
        'shared' => array(
            'host' => '10.10.10.1'
        ),
        'external' => array(
            'host' => '156.12.102.1'
        )
    )
);


var_dump($config['database.connection.local.host']);

/*
string(9) "localhost"
*/