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; }
/** * Проксирует вызов методов в модуль сущности * * @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; }