wdalmut/simplini

一个简单的INI读取器。此项目深受 Zend_Config_Ini 的启发

0.0.2 2014-03-24 20:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:06:03 UTC


README

一个简单的INI读取器。此项目深受 Zend_Config_Ini 的启发

单元测试状态

Build Status

部分

Simplini 允许多个部分,并且部分(多个部分)可以覆盖。

[prod]
a="ciao"
b=hello

[dev : prod]
a="ecco"

强制开发者模式

<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini', 'dev');

echo $conf->prod()->a; // will echo "ecco"

数组

数组支持

a[] = one
a[] = two
a[] = three
<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini');

var_dump(conf->a); // array(one,two,three)

嵌套对象

嵌套对象

[production]
a.b.c = "Hello"
<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini');

echo conf->production()->a->b-c; // will echo "hello"

多个部分

[mysql]
db.host = "localhost"
db.user = "user"
db.password = "password"

[redis]
nosql.a.host = "localhost"
nosql.b.host = "192.168.2.2"
<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini');

echo $conf->mysql()->db->host; // localhost

echo $conf->redis()->nosql->b->host; // 192.168.2.2

覆盖策略

您有三种类型的覆盖。

[prod]
a = hello

[dev : prod]
a = ciao

[mysql]
host = localhost

[dm : mysql]
host = 192.168.2.2

[redis]
host = localhost

[rd : redis]
host = 192.168.3.3

全部覆盖

<?php
$conf = new Config();
$conf->load(__DIR__ . '/a.ini', true);

echo $conf->prod()->a; // echo ciao
echo $conf->mysql()->host; // echo 192.168.2.2
echo $conf->redis()->host; // echo 192.168.3.3

仅覆盖一个部分

<?php
$conf = new Config();
$conf->load(__DIR__ . '/a.ini', 'dev');

echo $conf->prod()->a; // echo ciao
echo $conf->mysql()->host; // echo localhost
echo $conf->redis()->host; // echo localhost

覆盖一组部分

<?php
$conf = new Config();
$conf->load(__DIR__ . '/a.ini', array('dev', 'dm'));

echo $conf->prod()->a; // echo ciao
echo $conf->mysql()->host; // echo 192.168.2.2
echo $conf->redis()->host; // echo localhost