diff --git a/library/think/loader.php b/library/think/loader.php index 734fe603..cc0cfa80 100644 --- a/library/think/loader.php +++ b/library/think/loader.php @@ -36,23 +36,24 @@ class Loader include $file; } else { // 命名空间自动加载 - $name = strtolower(strstr($class, '\\', true)); + $name = strtolower(strstr($class, '\\', true)); + $class = substr($class, strlen($name) + 1); 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; + $path = LIB_PATH . $name . DS; } elseif (APP_NAMESPACE == $name) { // 项目命名空间 $path = APP_PATH; } elseif (is_dir(EXTEND_PATH . $name)) { // 扩展类库命名空间 - $path = EXTEND_PATH . $name; + $path = EXTEND_PATH . $name . DS; } else { return; } - $filename = $path . str_replace('\\', DS, str_replace('\\_', '\\', strtolower(trim(preg_replace("/[A-Z]/", "_\\0", strstr($class, '\\')), "_")))) . EXT; + $filename = $path . str_replace('\\', DS, str_replace('\\_', '\\', strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $class), "_")))) . EXT; if (is_file($filename)) { include $filename; }