protected function _includeControllerClass($controllerFileName, $controllerClassName)
 {
     if (Extendware_EWCore_Model_Autoload::isOverridden($controllerClassName)) {
         try {
             $controllerFileName = Extendware_EWCore_Model_Autoload::getIncludeFileFor($controllerClassName);
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     return parent::_includeControllerClass($controllerFileName, $controllerClassName);
 }
 protected function _getClassesSourceCode($classes, $scope)
 {
     $sortedClasses = array();
     foreach ($classes as $className) {
         if (class_exists($className) === false) {
             continue;
         }
         $implements = array_reverse(class_implements($className));
         foreach ($implements as $class) {
             if (!in_array($class, $sortedClasses) && !in_array($class, $this->_processedClasses) && strstr($class, '_')) {
                 $sortedClasses[] = $class;
                 if ($scope == 'default') {
                     $this->_processedClasses[] = $class;
                 }
             }
         }
         $extends = array_reverse(class_parents($className));
         foreach ($extends as $class) {
             if (!in_array($class, $sortedClasses) && !in_array($class, $this->_processedClasses) && strstr($class, '_')) {
                 $sortedClasses[] = $class;
                 if ($scope == 'default') {
                     $this->_processedClasses[] = $class;
                 }
             }
         }
         if (!in_array($className, $sortedClasses) && !in_array($className, $this->_processedClasses)) {
             $sortedClasses[] = $className;
             if ($scope == 'default') {
                 $this->_processedClasses[] = $className;
             }
         }
     }
     // remove all the classes that are included in the overridden classes include file (created by extendware ewcore)
     $sortedClasses = $this->removeOverriddenClasses($sortedClasses, array('search_alias', 'replace', 'bridge'));
     $classesSource = "<?php\n";
     foreach ($sortedClasses as $className) {
         $file = null;
         if ($this->isAffectedOverriddenSearchClass($className)) {
             $file = Extendware_EWCore_Model_Autoload::getIncludeFileFor($className);
         } else {
             $file = $this->_includeDir . DS . $className . '.php';
         }
         if (!file_exists($file)) {
             continue;
         }
         $content = file_get_contents($file);
         $content = ltrim($content, '<?php');
         $content = rtrim($content, "\n\r\t?>");
         $content = $this->wrapClass($className, $content, $scope);
         $classesSource .= $content;
     }
     return $classesSource;
 }