flaviovs/uconfig

A micro, no frills, configuration interface for PHP

0.0.1 2016-03-15 22:28 UTC

This package is not auto-updated.

Last update: 2024-11-07 00:48:12 UTC


README

Usage:

$handler = new \UConfig\INIFileHandler('/path/to/config.ini');
$defaults = [
    'section' => [
        'bar' => 1,
        'zoo' => 2,
    ],
];
$config = new \UConfig\Config($defaults);
$config->addHandler(new \UConfig\INIFileHandler('/path/to/config.ini'));

$bar = $config->get('section', 'bar');
// $bar = 1

try {
    $config->get('nonexistent', 'bar');
} catch ( \UConfig\SectionNotFoundException $ex ) {
    die("Section not found: " . $ex->getMessage());
} catch ( \UConfig\OptionNotFoundException $ex ) {
    die("Option not found: " . $ex->getMessage());
}

Handlers

Configuration is handled by configuration handlers. To implement a new handler, add a class that implements the UConfig\Handler interface, with a method called load() that returns a configuration array, which must be structured as follows:

 $config = [
     'section' => [
         'key1' => value,
         'key2' => value,
         //(...)
     ],
     'anothersection' => [
         'key1' => value,
         'key2' => value,
         //(...)
    ]
]

A UConfig\Config object may have many handlers attached to it. Use the addHandler() method to add handlers. Configuration is loaded in sequence, with later handler overriding previous ones.

Currently, only the UConfig\INIFileHandler is provided. Other handlers may be added in the future.