CzProject\Configuration
, (*1)
Helper for processing of configurations., (*2)
, (*3)
Installation
Download a latest package or use Composer:, (*4)
composer require czproject/configuration
CzProject\Configuration requires PHP 5.4.0 or later., (*5)
Usage
``` php
use CzProject\Configuration\Configurator;, (*6)
$configurator = new Configurator;
$configurator->addConfig(array(
'database' => array(
'host' => 'localhost',
),
));, (*7)
$configurator->addConfig(array(
'database' => array(
'user' => 'user123',
'password' => 'password123',
),
));, (*8)
$config = $configurator->getConfig();, (*9)
/* Returns:
[
database => [
host => 'localhost',
user => 'user123',
password => 'password123',
]
]
*/, (*10)
### Config files
``` php
use CzProject\Configuration\Configurator;
use CzProject\Configuration\ConfigLoader;
use CzProject\Configuration\Adapters;
$loader = new ConfigLoader;
$loader->addAdapter('json', new Adapters\JsonAdapter);
$loader->addAdapter('php', new Adapters\PhpAdapter);
$loader->addAdapter('neon', new Adapters\NeonAdapter);
$configurator = new Configurator($loader);
$configurator->addConfig('config.json');
$configurator->addConfig('config.local.php');
$config = $configurator->getConfig();
Parameters & placeholders
``` php
use CzProject\Configuration\Configurator;, (*11)
$configurator = new Configurator;
$configurator->addConfig(array(
'parameters' => array(
'database' => array(
'host' => 'localhost',
'driver' => 'mysql',
),
),, (*12)
'messages' => array(
'user' => '%database.user%',
),
));, (*13)
$configurator->addConfig(array(
'parameters' => array(
'database' => array(
'user' => '%database.host%_user123',
'password' => 'password123',
),
),
));, (*14)
$config = $configurator->getConfigExpandedBy('parameters');, (*15)
/* Returns:
[
parameters => [
database => [
host => 'localhost',
driver => 'mysql',
user => 'localhost_user123',
password => 'password123',
]
],, (*16)
messages => [
user => 'localhost_user123',
]
]
*/
```, (*17)
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/, (*18)