jalet/tvnu-config

基于环境的多种格式配置助手。支持INI,YAML,数据库(PDO)或数组。

此包的官方仓库似乎已消失,因此该包已被冻结。

1.2.0 2015-12-15 09:41 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:00:54 UTC


README

基于环境的多种格式配置助手。支持INIYAML数组数据库(PDO

Build Status

要求

  • PHP 5.6+
  • PDO(可选)
  • YAML(可选)

使用

INI

[production]
foo     = Bar
bar.foo = Hello World
bar.biz = World Hello
biz     = Baz

[development : production]
foo = Foo Dev

[local : development]
bar.biz = Hello Local
// Production
$a = new Tvnu\Config\Adapter\Ini('production', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Bar

// Development
$a = new Tvnu\Config\Adapter\Ini('development', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Foo Dev

// Local
$a = new Tvnu\Config\Adapter\Ini('local', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('bar.biz'); // Hello Local

PHP数组

// path/to/config/config.php
return [
    'foo' => 'Bar',
    'bar' => [
        'foo' => "Hello World",
        'biz' => "World Hello",
        'baz' => [
            'foo' => 'Foobar'
        ]
    ],
    'biz' => 'Baz'
];

// path/to/config/config.development.php
return [
    'foo' => 'Foo Dev',
    'bar' => [
        'foo' => "Hello World",
        'biz' => "World Hello",
        'baz' => [
            'foo' => 'Barfoo'
        ]
    ],
];

// path/to/config/config.local.php
return [
    'biz' => [
        'baz' => 'Hello Local'
    ]
];
// Production
$a = new Tvnu\Config\Adapter\PhpArray('production', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Bar

// Development
$a = new Tvnu\Config\Adapter\PhpArray('development', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Foo Dev

// Local
$a = new Tvnu\Config\Adapter\PhpArray('local', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('bar.biz'); // Hello Local

YAML

production:
    foo: Bar
    bar:
        foo: "Hello World"
        biz: "World Hello"
        bar:
            foo: "Hello World Third"
    biz: Baz   

development:
    foo: "Foo Dev"

local:
    bar:
        biz: "Hello Local"
// Production
$a = new Tvnu\Config\Adapter\Yaml('production', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Bar

// Development
$a = new Tvnu\Config\Adapter\Yaml('development', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Foo Dev

// Local
$a = new Tvnu\Config\Adapter\Yaml('local', 'path/to/config'));
$c = new Tvnu\Config\Config($a);

echo $c->get('bar.biz'); // Hello Local

数据库(PDO)

    #    |    key    |    val    
-------------------------------------
    1    |    foo    |    Bar    
    2    |    biz    |    Baz    
    3    |  bar.foo  |    Hello World    
    4    |  bar.biz  |    World Hello
// Production
$a = new Tvnu\Config\Adapter\Database($pdoConnection, $myTableName, array('my', 'fields', 'of', 'choice'));
$c = new Tvnu\Config\Config($a);

echo $c->get('foo'); // Bar

Composer

Packagegist

composer.json

{
    "require": {
        "jalet/tvnu-config": "1.2.0"
    }
}

测试

# Run tests
$ composer test

# Run tests with coverage
$ composer coverage

待办事项

  • 返回值数组

许可证

版权(c)2013 Joakim Jarsäter joakim@jarsater.com

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用的权限,没有限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是在合同行为、侵权行为或其他行为中产生的,无论这些责任是否与软件或其使用或以其他方式有关。