From cdd0dc6048764974243e2c644fc505242d158bd7 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 25 Dec 2015 09:36:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=89=A9=E5=B1=95=E7=B1=BB?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E8=87=AA=E5=8A=A8=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base.php | 1 + library/think/loader.php | 16 ++++++---------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/base.php b/base.php index 32e55f3c..a73fe8b7 100644 --- a/base.php +++ b/base.php @@ -18,6 +18,7 @@ define('THINK_VERSION', '5.0.0beta'); defined('DS') or define('DS', DIRECTORY_SEPARATOR); defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__) . DS); defined('LIB_PATH') or define('LIB_PATH', THINK_PATH . 'library' . DS); +defined('EXTEND_PATH') or define('EXTEND_PATH', THINK_PATH . 'extend' . DS); defined('MODE_PATH') or define('MODE_PATH', THINK_PATH . 'mode' . DS); // 系统应用模式目录 defined('CORE_PATH') or define('CORE_PATH', LIB_PATH . 'think' . DS); defined('ORG_PATH') or define('ORG_PATH', LIB_PATH . 'org' . DS); diff --git a/library/think/loader.php b/library/think/loader.php index 30fb74ed..c0c2748b 100644 --- a/library/think/loader.php +++ b/library/think/loader.php @@ -34,24 +34,20 @@ class Loader } elseif ($file = self::findFileInComposer($class)) { include $file; } else { - // 项目命名空间 - $path = APP_PATH; // 命名空间自动加载 $name = strtolower(strstr($class, '\\', true)); if (isset(self::$namespace[$name])) { // 注册的命名空间 $path = dirname(self::$namespace[$name]) . DS; - } elseif (in_array($name, ['think', 'org', 'behavior', 'com', 'traits']) || is_dir(LIB_PATH . $name)) { + } elseif (in_array($name, ['think', 'behavior', 'traits']) || is_dir(LIB_PATH . $name)) { // Library目录下面的命名空间自动定位 $path = LIB_PATH; + } elseif (is_dir(EXTEND_PATH . $name)) { + // 扩展类库命名空间 + $path = EXTEND_PATH; } else { - $extend = Config::get('extend_library') ?: []; - foreach ($extend as $_extend) { - if (is_dir($_extend . $name)) { - $path = $_extend; - break; - } - } + // 项目命名空间 + $path = APP_PATH; } $filename = $path . str_replace('\\', DS, str_replace('\\_', '\\', strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $class), "_")))) . EXT; if (is_file($filename)) {