* @link http://netmonsters.ru * @package Majestic * @subpackage Model * @since 2010-02-17 */ 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); } } class ConfigArray extends \ArrayObject { public function __construct($array) { parent::__construct($array, \ArrayObject::ARRAY_AS_PROPS); } public function offsetGet($index) { if (!$this->offsetExists($index)) { throw new Exception\GeneralException('Configuration variable "' . $index . '" undefined'); } return parent::offsetGet($index); } }