https://github.com/czproject/configuration
Helper for processing of configurations.
https://github.com/czproject/configuration
Last synced: about 1 year ago
JSON representation
Helper for processing of configurations.
- Host: GitHub
- URL: https://github.com/czproject/configuration
- Owner: czproject
- License: other
- Created: 2016-08-19T20:29:58.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-12-27T16:37:23.000Z (over 7 years ago)
- Last Synced: 2025-05-08T08:41:36.755Z (about 1 year ago)
- Language: PHP
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# CzProject\Configuration
[](https://travis-ci.org/czproject/configuration)
Helper for processing of configurations.
## Installation
[Download a latest package](https://github.com/czproject/configuration/releases) or use [Composer](http://getcomposer.org/):
```
composer require czproject/configuration
```
`CzProject\Configuration` requires PHP 5.4.0 or later.
## Usage
``` php
use CzProject\Configuration\Configurator;
$configurator = new Configurator;
$configurator->addConfig(array(
'database' => array(
'host' => 'localhost',
),
));
$configurator->addConfig(array(
'database' => array(
'user' => 'user123',
'password' => 'password123',
),
));
$config = $configurator->getConfig();
/* Returns:
[
database => [
host => 'localhost',
user => 'user123',
password => 'password123',
]
]
*/
```
### 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;
$configurator = new Configurator;
$configurator->addConfig(array(
'parameters' => array(
'database' => array(
'host' => 'localhost',
'driver' => 'mysql',
),
),
'messages' => array(
'user' => '%database.user%',
),
));
$configurator->addConfig(array(
'parameters' => array(
'database' => array(
'user' => '%database.host%_user123',
'password' => 'password123',
),
),
));
$config = $configurator->getConfigExpandedBy('parameters');
/* Returns:
[
parameters => [
database => [
host => 'localhost',
driver => 'mysql',
user => 'localhost_user123',
password => 'password123',
]
],
messages => [
user => 'localhost_user123',
]
]
*/
```
------------------------------
License: [New BSD License](license.md)
Author: Jan Pecha, https://www.janpecha.cz/