diff --git a/library/think/Loader.php b/library/think/Loader.php index be74b333..c2c96f49 100644 --- a/library/think/Loader.php +++ b/library/think/Loader.php @@ -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; diff --git a/mode/common.php b/mode/common.php index 5f02d2d3..3879e1ff 100644 --- a/mode/common.php +++ b/mode/common.php @@ -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, + ], + ]; diff --git a/mode/console.php b/mode/console.php index 2a35e7c7..82c46c5e 100644 --- a/mode/console.php +++ b/mode/console.php @@ -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, + ], ]; diff --git a/mode/sae.php b/mode/sae.php index 2a1bdbe7..ff3aba1f 100644 --- a/mode/sae.php +++ b/mode/sae.php @@ -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, + ], + ]; diff --git a/start.php b/start.php index 8c6f8329..ce9ebbb8 100644 --- a/start.php +++ b/start.php @@ -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']);