From ac5e6b22583e57d3e5ce8d74f76f3e5d0ca52db0 Mon Sep 17 00:00:00 2001 From: huangdijia Date: Fri, 5 Feb 2016 13:32:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Loader=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8Loader::addNamespace()=E7=AE=80=E5=8C=96=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E8=B7=AF=E5=BE=84=E5=88=A4=E6=96=AD=EF=BC=9B=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4Error::register()=E4=BD=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E9=80=9A=E8=BF=87alias=E9=85=8D=E7=BD=AE=E5=88=AB=E5=90=8D?= =?UTF-8?q?=E6=8F=90=E9=AB=98Error=E7=B1=BB=E5=8A=A0=E8=BD=BD=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Loader.php | 6 ------ mode/common.php | 8 ++++++++ mode/console.php | 10 +++++++++- mode/sae.php | 8 ++++++++ start.php | 11 ++++++++--- 5 files changed, 33 insertions(+), 10 deletions(-) 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']);