for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace micmania1\config;
class ConfigCollection implements ConfigCollectionInterface
{
/**
* Stores a list of key/value config.
*
* @var array
*/
protected $config = [];
public function __construct(array $config = [])
foreach($config as $key => $item) {
if(!($item instanceof ConfigItemInterface)) {
$item = new ConfigItem($item);
}
$this->config[$key] = $item;
* {@inheritdoc}
public function set($key, $item)
if(!$this->exists($key)) {
$existing = $this->config[$key];
$existing->set($item->getValue(), $item->getMetaData());
public function get($key)
return null;
return $this->config[$key];
public function exists($key)
return array_key_exists($key, $this->config);
public function clear($key)
if($this->exists($key)) {
unset($this->config[$key]);
public function keys()
return array_keys($this->config);
public function all()
return $this->config;