コード例 #1
0
 /**
  * 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();
 }