/** * Called before Zend_Controller_Front enters its dispatch loop. * * @param Zend_Controller_Request_Abstract $request * @return void */ public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $moduleName = $request->getModuleName(); if (empty($moduleName)) { $moduleName = 'default'; } $front = Zend_Controller_Front::getInstance(); $moduleDir = $front->getModuleDirectory($moduleName); if (empty($moduleDir)) { $moduleDir = APPLICATION_PATH; } defined('MODULE_PATH') || define('MODULE_PATH', getenv('MODULE_PATH') ? getenv('MODULE_PATH') : $moduleDir); defined('MODULE_NAME') || define('MODULE_NAME', getenv('MODULE_NAME') ? getenv('MODULE_NAME') : $moduleName); $this->_autoloader = new Zend_Application_Module_Autoloader(array('namespace' => $moduleName, 'basePath' => $moduleDir)); $this->_bootstrap = $front->getParam('bootstrap'); $globalOptions = $this->_bootstrap->getOptions(); $options = array(); if (isset($globalOptions['default'])) { $options = $globalOptions['default']; } if (isset($globalOptions[$moduleName])) { $options = $this->_bootstrap->mergeOptions($options, $globalOptions[$moduleName]); } $applicationFile = $moduleDir . DIRECTORY_SEPARATOR . self::MODULE_APPLICATION_INI; if (isset($globalOptions['application_file'])) { $applicationFile = $moduleDir . DIRECTORY_SEPARATOR . $globalOptions['application_file']; } $options = $this->_bootstrap->mergeOptions($options, $this->_loadConfig($applicationFile)); if (isset($globalOptions['disable'])) { $options = $this->unsetOptions($options, $globalOptions['disable']); } $this->_bootstrap->setOptions($options); $this->_bootstrap->bootstrap(); }