Example #1
0
 public static function autoload($sClassName)
 {
     if (!class_exists('Engine')) {
         return;
     }
     $aInfo = Engine::GetClassInfo($sClassName, Engine::CI_CLASSPATH | Engine::CI_INHERIT);
     if ($aInfo[Engine::CI_INHERIT]) {
         $sInheritClass = $aInfo[Engine::CI_INHERIT];
         $sParentClass = self::GetParentInherit($sInheritClass);
         if (class_alias($sParentClass, $sClassName)) {
             return true;
         }
     }
 }
 /**
  * Автозагрузка классов
  *
  * @param string $sClassName Название класса
  * @return bool
  */
 public static function autoload($sClassName)
 {
     $aInfo = Engine::GetClassInfo($sClassName, Engine::CI_CLASSPATH | Engine::CI_INHERIT);
     if ($aInfo[Engine::CI_INHERIT]) {
         $sInheritClass = $aInfo[Engine::CI_INHERIT];
         $sParentClass = Engine::getInstance()->Plugin_GetParentInherit($sInheritClass);
         if (!class_alias($sParentClass, $sClassName)) {
             dump("(autoload {$sParentClass}) Can not load CLASS-file");
         } else {
             return true;
         }
     } elseif ($aInfo[Engine::CI_CLASSPATH]) {
         require_once $aInfo[Engine::CI_CLASSPATH];
         return true;
     } elseif (!class_exists($sClassName)) {
         dump("(autoload {$sClassName}) Can not load CLASS-file");
         dump($aInfo);
         //throw new Exception("(autoload '$sClassName') Can not load CLASS-file");
     }
     return false;
 }
Example #3
0
 /**
  * Проксирует вызов методов в модуль сущности
  *
  * @param unknown_type $sName
  * @return unknown
  */
 protected function _Method($sName)
 {
     $sModuleName = Engine::GetModuleName($this);
     $sEntityName = Engine::GetEntityName($this);
     $sPluginPrefix = Engine::GetPluginPrefix($this);
     /**
      * If Module not exists, try to find its root Delegater
      */
     $aClassInfo = Engine::GetClassInfo($sPluginPrefix . 'Module_' . $sModuleName, Engine::CI_MODULE);
     if (empty($aClassInfo[Engine::CI_MODULE]) && ($sRootDelegater = $this->Plugin_GetRootDelegater('entity', get_class($this)))) {
         $sModuleName = Engine::GetModuleName($sRootDelegater);
         $sPluginPrefix = Engine::GetPluginPrefix($sRootDelegater);
     }
     return Engine::GetInstance()->_CallModule("{$sPluginPrefix}{$sModuleName}_{$sName}{$sEntityName}", array($this));
 }
 /**
  * Автозагрузка классов
  *
  * @param string $sClassName	Название класса
  * @return bool
  */
 public static function autoload($sClassName)
 {
     $aInfo = Engine::GetClassInfo($sClassName, Engine::CI_CLASSPATH | Engine::CI_INHERIT);
     if ($aInfo[Engine::CI_INHERIT]) {
         $sInheritClass = $aInfo[Engine::CI_INHERIT];
         $sParentClass = Engine::getInstance()->Plugin_GetParentInherit($sInheritClass);
         if (class_alias($sParentClass, $sClassName)) {
             return true;
         }
     } elseif ($aInfo[Engine::CI_CLASSPATH]) {
         require_once $aInfo[Engine::CI_CLASSPATH];
         return true;
     } elseif (!class_exists($sClassName)) {
         /**
          * Проверяем соответствие PSR-0
          */
         $sClassName = ltrim($sClassName, '\\');
         $sFileName = '';
         $sNameSpace = '';
         if ($iLastNsPos = strrpos($sClassName, '\\')) {
             $sNameSpace = substr($sClassName, 0, $iLastNsPos);
             $sClassName = substr($sClassName, $iLastNsPos + 1);
             $sFileName = str_replace('\\', DIRECTORY_SEPARATOR, $sNameSpace) . DIRECTORY_SEPARATOR;
         }
         $sFileName .= str_replace('_', DIRECTORY_SEPARATOR, $sClassName) . '.php';
         $sFileName = Config::Get('path.framework.libs_vendor.server') . DIRECTORY_SEPARATOR . $sFileName;
         if (file_exists($sFileName)) {
             require_once $sFileName;
             return true;
         }
         //throw new Exception("(autoload '$sClassName') Can not load CLASS-file");
     }
     return false;
 }