emaphp / fluent-configuration
PHP 的流畅配置特性
1.2
2015-02-23 18:11 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-24 03:28:39 UTC
README
PHP 的流畅配置特性
### 更新日志
2014-02-23
- 修改:方法 'append' 重命名为 'push'。
- 添加:方法 'pop'。
### 安装
composer.json
{ "require": { "emaphp/fluent-configuration": "1.2.*" } }
### 使用
**包含特性** ```php namespace Demo;
class ConfigurationContainer { use \FluentConfiguration; }
<br/>
**Examples**
```php
use Demo\ConfigurationContainer;
$config = new ConfigurationContainer();
//set option
$config->setOption('test1', 'value1');
$option = $config->getOption('test1'); // 'value1'
//fluent interface
$newInstance = $config->option('test2', 'value2')->option('test3', 'value3');
$newInstance->getOption('test2'); // 'value2'
$config->hasOption('test2'); //false
$config->hasOption('test3'); //false
//merge options
$config = $newInstance->merge(['test3' => 'new_value', 'test4' => 'value4']);
$config->getOption('test1'); // 'value1'
$config->getOption('test3'); // 'new_value'
$config->getOption('test4'); // 'value4'
$newInstance->hasOption('test4'); // false
//discard
$config = $config->discard('test1', 'test3');
$config->hasOption('test1'); // false
$config->hasOption('test3'); // false
$config->hasOption('test4'); // true
//push & pop
$config = new ConfigurationContainer();
$config->setOption('list', 'item1');
$config = $config->push('list', 'item2', 'item3');
$config->getOption('list'); // ['item1', 'item2', 'item3']
$value = $config->pop('list'); // 'item3'
//preserve instance
$config = new ConfigurationContainer();
$config->preserveInstance = true;
$config->setOption('test1', 'val1');
$newConf = $config->option('test2', 'val2');
$config->hasOption('test1'); // true
$config->hasOption('test2'); // true
$newConf->getOption('test2') == $config->getOption('test2'); // true
### 许可证
在 MIT 许可证下发布。