setOptions($options); } } public function setOptions(Array $options) { foreach ($options as $optionName => $optionValue) { $setMethodName = 'set' . $optionName; if (method_exists($this, $setMethodName)) { $this->{$setMethodName}($optionValue); } } } public function setConfigFilepath($configFilepath) { if (!file_exists($configFilepath)) { require_once 'Zend/Tool/Framework/Client/Exception.php'; throw new Zend_Tool_Framework_Client_Exception('Provided path to config ' . $configFilepath . ' does not exist'); } $this->_configFilepath = $configFilepath; $suffix = substr($configFilepath, -4); switch ($suffix) { case '.ini': require_once 'Zend/Config/Ini.php'; $this->_config = new Zend_Config_Ini($configFilepath); break; case '.xml': require_once 'Zend/Config/Xml.php'; $this->_config = new Zend_Config_Xml($configFilepath); break; case '.php': require_once 'Zend/Config.php'; $this->_config = new Zend_Config(include $configFilepath); break; default: require_once 'Zend/Tool/Framework/Client/Exception.php'; throw new Zend_Tool_Framework_Client_Exception('Unknown config file type ' . $suffix . ' at location ' . $configFilepath ); } return $this; } public function getConfigFilepath() { return $this->_configFilepath; } public function get($name, $defaultValue) { return $this->_config->get($name, $defaultValue); } public function __get($name) { return $this->_config->{$name}; } }