classes 폴더 내의 주요 클래스에 autoload 적용

This commit is contained in:
Kijin Sung 2015-04-04 21:03:42 +09:00
parent b4bbbb378f
commit 56a19374c6

View file

@ -291,34 +291,56 @@ if(!defined('__XE_LOADED_CLASS__'))
define('__StartTime__', getMicroTime()); define('__StartTime__', getMicroTime());
// include the class files // include the class files
//TODO When _autoload() can be used for PHP5 based applications, it will be removed.
if(__DEBUG__) if(__DEBUG__)
define('__ClassLoadStartTime__', getMicroTime()); define('__ClassLoadStartTime__', getMicroTime());
require(_XE_PATH_ . 'classes/object/Object.class.php');
require(_XE_PATH_ . 'classes/extravar/Extravar.class.php'); $__xe_autoload_file_map = array(
require(_XE_PATH_ . 'classes/handler/Handler.class.php'); 'CacheHandler' => 'classes/cache/CacheHandler.class.php',
require(_XE_PATH_ . 'classes/xml/XmlParser.class.php'); 'Context' => 'classes/context/Context.class.php',
require(_XE_PATH_ . 'classes/xml/XmlGenerator.class.php'); 'DB' => 'classes/db/DB.class.php',
require(_XE_PATH_ . 'classes/xml/XmlJsFilter.class.php'); 'DisplayHandler' => 'classes/display/DisplayHandler.class.php',
require(_XE_PATH_ . 'classes/xml/XmlLangParser.class.php'); 'EditorHandler' => 'classes/editor/EditorHandler.class.php',
require(_XE_PATH_ . 'classes/cache/CacheHandler.class.php'); 'ExtraVar' => 'classes/extravar/Extravar.class.php',
require(_XE_PATH_ . 'classes/context/Context.class.php'); 'FileHandler' => 'classes/file/FileHandler.class.php',
require(_XE_PATH_ . 'classes/db/DB.class.php'); 'FileObject' => 'classes/file/FileObject.class.php',
require(_XE_PATH_ . 'classes/file/FileHandler.class.php'); 'FrontEndFileHandler' => 'classes/frontendfile/FrontEndFileHandler.class.php',
require(_XE_PATH_ . 'classes/widget/WidgetHandler.class.php'); 'Handler' => 'classes/handler/Handler.class.php',
require(_XE_PATH_ . 'classes/editor/EditorHandler.class.php'); 'Mail' => 'classes/mail/Mail.class.php',
require(_XE_PATH_ . 'classes/module/ModuleObject.class.php'); 'Mobile' => 'classes/mobile/Mobile.class.php',
require(_XE_PATH_ . 'classes/module/ModuleHandler.class.php'); 'ModuleHandler' => 'classes/module/ModuleHandler.class.php',
require(_XE_PATH_ . 'classes/display/DisplayHandler.class.php'); 'ModuleObject' => 'classes/module/ModuleObject.class.php',
require(_XE_PATH_ . 'classes/template/TemplateHandler.class.php'); 'Object' => 'classes/object/Object.class.php',
require(_XE_PATH_ . 'classes/mail/Mail.class.php'); 'PageHandler' => 'classes/page/PageHandler.class.php',
require(_XE_PATH_ . 'classes/page/PageHandler.class.php'); 'Password' => 'classes/security/Password.class.php',
require(_XE_PATH_ . 'classes/mobile/Mobile.class.php'); 'Security' => 'classes/security/Security.class.php',
require(_XE_PATH_ . 'classes/validator/Validator.class.php'); 'IpFilter' => 'classes/security/IpFilter.class.php',
require(_XE_PATH_ . 'classes/frontendfile/FrontEndFileHandler.class.php'); 'TemplateHandler' => 'classes/template/TemplateHandler.class.php',
require(_XE_PATH_ . 'classes/security/Password.class.php'); 'Validator' => 'classes/validator/Validator.class.php',
require(_XE_PATH_ . 'classes/security/Security.class.php'); 'WidgetHandler' => 'classes/widget/WidgetHandler.class.php',
require(_XE_PATH_ . 'classes/security/IpFilter.class.php'); 'XEHttpRequest' => 'classes/httprequest/XEHttpRequest.class.php',
'XmlGenerator' => 'classes/xml/XmlGenerator.class.php',
'XmlJsFilter' => 'classes/xml/XmlJsFilter.class.php',
'XmlParser' => 'classes/xml/XmlParser.class.php',
'XmlLangParser' => 'classes/xml/XmlLangParser.class.php',
'XmlQueryParser' => 'classes/xml/XmlQueryParser.class.php',
);
function __xe_autoload($class_name)
{
static $file_map = null;
if($file_map === null)
{
$file_map = array_change_key_case($GLOBALS['__xe_autoload_file_map'], CASE_LOWER);
}
$class_name = strtolower($class_name);
if(isset($file_map[$class_name]))
{
require $file_map[$class_name];
}
}
__xe_autoload('Context');
spl_autoload_register('__xe_autoload');
if(__DEBUG__) if(__DEBUG__)
$GLOBALS['__elapsed_class_load__'] = getMicroTime() - __ClassLoadStartTime__; $GLOBALS['__elapsed_class_load__'] = getMicroTime() - __ClassLoadStartTime__;
} }