public function loadClass($className) { // this control make it possible to add an own IndexController in web controllers if ($this->_curModule == 'kwf_controller_action_welcome' && $className == 'WelcomeController' && class_exists('WelcomeController')) { return $className; } if (substr($className, 0, 5) == 'Vkwf_' || substr($className, 0, 5) == 'Vkwc_' || substr($className, 0, 4) == 'Kwc_' || substr($className, 0, 4) == 'Kwf_') { if (!class_exists($className)) { throw new Zend_Controller_Dispatcher_Exception("Invalid controller class '{$className}'"); } return $className; } else { return parent::loadClass($className); } }
/** * Пробуем найти нужный контроллер * * cначала ищем в модулях HEAP_PATH * eсли контроллер не найден ищем его в MODULES_PATH * * @param string $className * @return string Class name loaded * @throws Zend_Controller_Dispatcher_Exception if class not loaded */ private function _DELETEloadClass($className) { try { $finalClass = parent::loadClass($className); } catch (Exception $e) { /* защита от рекурсии - ищем в MODULES_PATH только один раз */ if (false == strstr($this->_curDirectory, MODULES_PATH)) { $systemControllerDir = $this->_modulesControllerDirectory(); /* если контроллер найден пробуем его подключить */ if (file_exists($systemControllerDir . DS . $this->classToFilename($className))) { $this->_curDirectory = $systemControllerDir; $this->setControllerDirectory($this->_curDirectory, $this->_curModule); require_once $systemControllerDir . DS . $this->classToFilename($className); return parent::loadClass($className); } } throw new Exception($e->getMessage()); } return $finalClass; }