/** * Based heavily on Zend_Application->_loadConfig * Load configuration file of options. * * @param string $file * @throws Zend_Application_Exception When invalid configuration file is provided * @return array */ protected function _loadConfig($file) { if (!Zend_Loader::isReadable($file)) { return; } $environment = $this->_bootstrap->getApplication()->getEnvironment(); $suffix = strtolower(pathinfo($file, PATHINFO_EXTENSION)); switch ($suffix) { case 'ini': $config = new Zend_Config_Ini($file, $environment); break; case 'xml': $config = new Zend_Config_Xml($file, $environment); break; case 'php': case 'inc': $config = (include $file); if (!is_array($config)) { throw new Zend_Application_Exception('Invalid configuration file provided; PHP file does not return array value'); } return $config; default: throw new Zend_Application_Exception('Invalid configuration file provided; unknown config type'); break; } return $config->toArray(); }