Files
majestic/Config.php

54 lines
1.5 KiB
PHP
Raw Normal View History

2014-06-02 18:58:49 +04:00
<?php namespace Majestic;
/**
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
* @package Majestic
* @subpackage Model
* @since 2010-02-17
*/
2014-05-27 17:56:46 +04:00
2014-06-02 18:58:49 +04:00
class Config extends Registry
{
private static $_class_name = 'Config';
/**
* Метод устанавливает параметры конфигурации
* @param mixed $param
* Имя параметра или параметры в массиве
* @param mixed $value
* Значение параметра. Не требуется, если передаются параметры в массиве
*/
static public function set($param, $value = null)
{
// Разбираю массив, если параметры переданы в массиве
if (is_array($param)) {
foreach ($param as $paramItem => $value) {
self::set($paramItem, $value);
}
return;
}
if (is_array($value)) {
$value = new ConfigArray($value);
}
self::getInstance()->offsetSet($param, $value);
}
}
2014-05-27 17:56:46 +04:00
class ConfigArray extends \ArrayObject
{
public function __construct($array)
{
2014-05-27 17:56:46 +04:00
parent::__construct($array, \ArrayObject::ARRAY_AS_PROPS);
}
public function offsetGet($index)
{
if (!$this->offsetExists($index)) {
2014-06-02 18:58:49 +04:00
throw new Exception\GeneralException('Configuration variable "' . $index . '" undefined');
}
return parent::offsetGet($index);
}
}