A simple INI reader. This project is heavly inspired to
Zend_Config_Ini
Simplini allow multiple sections and section (multiple sections) override(s).
[prod]
a="ciao"
b=hello
[dev : prod]
a="ecco"Force the dev state:
<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini', 'dev');
echo $conf->prod()->a; // will echo "ecco"Array support
a[] = one
a[] = two
a[] = three<?php
$conf = new Config();
$conf->load(__DIR__ . '/my.ini');
var_dump(conf->a); // array(one,two,three)Nested Objects
[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.2You have three types of overrides.
[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