eserozvataf / scabbia2-config
This package is abandoned and no longer maintained.
No replacement package was suggested.
Scabbia2 Config Component
v0.1.1
2015-09-16 07:45 UTC
Requires
- php: >=5.6.0
Requires (Dev)
This package is auto-updated.
Last update: 2023-09-08 20:00:29 UTC
README
This component is a configuration compiler which supports binding multiple configuration files.
Usage
Merging multiple configurations
use Scabbia\Config\ConfigCollection; $confs = new ConfigCollection(); // add a yaml-parsed configuration $yaml = new \Scabbia\Yaml\Parser(); $confs->add($yaml->parse(file_get_contents('common.yml'))); // ...and/or add a json file $confs->add(json_decode(file_get_contents('production.json'))); // ...and/or add a configuration value manually $confs->add([ 'env' => 'development' ]); // output the result $config = $confs->save(); print_r($config);
Overriding an existing configuration item
use Scabbia\Config\ConfigCollection; $confs = new ConfigCollection(); $confs->add([ 'env' => 'production' ]); // in second config you can override a value with 'important' flag $confs->add([ 'env|important' => 'development' ]); // output the result $config = $confs->save(); echo $config['env'];
Constructing a list in separate configurations
use Scabbia\Config\ConfigCollection; $confs = new ConfigCollection(); $confs->add([ 'items|list' => [ 'first', 'second' ] ]); // in second config you can override a value with 'important' flag $confs->add([ 'items|list' => [ 'third' ] ]); // output the result $config = $confs->save(); print_r($config['items']);
Flatten configuration value keys
use Scabbia\Config\ConfigCollection; $confs = new ConfigCollection(); $confs->add([ 'database|flat' => [ 'mongo' => [ 'username' => 'scabbia2', 'password' => 'testing' ] ] ]); // output the result $config = $confs->save(); echo $config['database/mongo/username']; echo $config['database/mongo/password'];
Links
Contributing
It is publicly open for any contribution. Bugfixes, new features and extra modules are welcome. All contributions should be filed on the eserozvataf/scabbia2-config repository.