예제 #1
0
 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);
     }
 }
예제 #2
0
 /**
  * Пробуем найти нужный контроллер
  * 
  * 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;
 }