8000 GitHub - jaxon-php/jaxon-config: Save config options in immutable objects
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jaxon-php/jaxon-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Scrutinizer Code Quality StyleCI codecov

Latest Stable Version Total Downloads License

Jaxon Config

Jaxon Config saves config options in immutable objects.

Install

composer require jaxon-php/jaxon-config

Usage

Create a config setter.

$setter = new \Jaxon\Config\ConfigSetter();

Create a config object with initial value.

/** @var \Jaxon\Config\Config */
$config = $setter->newConfig([
    'a' => [
        'b' => [
            'c' => 'Value',
        ],
    ],
]);

Create a config reader.

$reader = new \Jaxon\Config\ConfigReader($setter);

Read config options from a file.

// A new config object is returned.
// From a PHP file.
$config = $reader->load($config, '/path/to/config/file.php');
// Or from a YAML file.
$config = $reader->load($config, '/path/to/config/file.yaml');
// Or from a JSON file.
$config = $reader->load($config, '/path/to/config/file.json');

Create an empty config object and set values.

/** @var \Jaxon\Config\Config */
$config = $setter->newConfig();
// A new config object is returned.
$config = $setter->setOptions($config, [
    'a' => [
        'b' => [
            'c' => 'Value',
        ],
    ],
]);

Read values.

$config->getOption('a'); // Returns ['b' => ['c' => 'Value']]
$config->getOption('a.b'); // Returns ['c' => 'Value']
$config->getOption('a.b.c'); // Returns 'Value'

Set a single value.

// A new config object is returned.
$config = $setter->setOption($config, 'a.b.d', 'Another value');

Read values.

$config->getOption('a'); // Returns ['b' => ['c' => 'Value', 'd' => 'Another value']]
$config->getOption('a.b'); // Returns ['c' => 'Value', 'd' => 'Another value']
$config->getOption('a.b.c'); // Returns 'Value'
$config->getOption('a.b.d'); // Returns 'Another value'

Set values with a prefix.

// A new config object is returned.
$config = $setter->setOptions($config, [
    'd' => [
        'e' => 'Overwritten value',
    ],
    'f' => ['Array', 'Of', 'Values'],
], 'a.b');

Read values.

$config->getOption('a.b
6852
'); // Returns ['c' => 'Value', 'd' => ['e' => 'Overwritten value']]
$config->getOption('a.b.d'); // Returns ['e' => 'Overwritten value']
$config->getOption('a.b.d.e'); // Returns 'Overwritten value'
$config->getOption('a.b.f'); // Returns ['Array', 'Of', 'Values']

Create a new config object.

/** @var \Jaxon\Config\Config */
$config = $setter->newConfig([
    'b' => [
        'c' => 'Value',
    ],
    'd' => 'Value',
    'e' => 'Value',
    'f' => 'Value',
], 'a');

Read values.

$config->getOption('a'); // Returns ['b' => ['c' => 'Value'], 'd' => 'Value', 'e' => 'Value', 'f' => 'Value']

Remove an entry.

// A new config object is returned.
$config = $setter->unsetOption($config, 'a.e');

Read values.

$config->getOption('a'); // Returns ['b' => ['c' => 'Value'], 'd' => 'Value', 'f' => 'Value']

Remove multiple entries.

// A new config object is returned.
$config = $setter->unsetOptions($config, ['a.f', 'a.b']);

Read values.

$config->getOption('a'); // Returns ['d' => 'Value']

About

Save config options in immutable objects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0