优化Loader,使用Loader::addNamespace()简化核心路径判断;

调整Error::register()位置,通过alias配置别名提高Error类加载速度。
This commit is contained in:
huangdijia
2016-02-05 13:32:43 +08:00
parent c0e6918711
commit ac5e6b2258
5 changed files with 33 additions and 10 deletions

View File

@@ -49,12 +49,6 @@ class Loader
if (isset(self::$namespace[$name])) {
// 注册的命名空间
$path = self::$namespace[$name];
} elseif (in_array($name, ['think', 'behavior', 'traits']) || is_dir(LIB_PATH . $name)) {
// 核心类库命名空间
$path = LIB_PATH . $name . DS;
} elseif (APP_NAMESPACE == $name) {
// 项目命名空间
$path = APP_PATH;
} elseif (is_dir(EXTEND_PATH . $name)) {
// 扩展类库命名空间
$path = EXTEND_PATH . $name . DS;

View File

@@ -47,4 +47,12 @@ return [
'think\cache\driver\File' => CORE_PATH . 'cache' . DS . 'driver' . DS . 'File' . EXT,
],
// 命名空间
'namespace' => [
'think' => LIB_PATH . 'think' . DS,
'behavior' => LIB_PATH . 'behavior' . DS,
'traits' => LIB_PATH . 'traits' . DS,
APP_NAMESPACE => APP_PATH,
],
];

View File

@@ -17,6 +17,14 @@ return [
'config' => [
'commands' => []
]
],
// 命名空间
'namespace' => [
'think' => LIB_PATH . 'think' . DS,
'behavior' => LIB_PATH . 'behavior' . DS,
'traits' => LIB_PATH . 'traits' . DS,
APP_NAMESPACE => APP_PATH,
],
];

View File

@@ -96,4 +96,12 @@ return [
'think\template\driver\Sae' => CORE_PATH . 'template' . DS . 'driver' . DS . 'Sae' . EXT,
],
// 命名空间
'namespace' => [
'think' => LIB_PATH . 'think' . DS,
'behavior' => LIB_PATH . 'behavior' . DS,
'traits' => LIB_PATH . 'traits' . DS,
APP_NAMESPACE => APP_PATH,
],
];

View File

@@ -19,17 +19,22 @@ require CORE_PATH . 'Loader.php';
// 注册自动加载
Loader::register();
// 注册错误和异常处理机制
Error::register();
// 加载模式定义文件
$mode = require MODE_PATH . APP_MODE . EXT;
// 加载空间别名定义
if (isset($mode['namespace'])) {
Loader::addNamespace(is_array($mode['namespace']) ? $mode['namespace'] : include $mode['namespace']);
}
// 加载模式别名定义
if (isset($mode['alias'])) {
Loader::addMap(is_array($mode['alias']) ? $mode['alias'] : include $mode['alias']);
}
// 注册错误和异常处理机制
Error::register();
// 加载模式配置文件
if (isset($mode['config'])) {
is_array($mode['config']) ? Config::set($mode['config']) : Config::load($mode['config']);