修正自动加载

This commit is contained in:
thinkphp
2016-01-02 19:50:00 +08:00
parent e33ec863fe
commit 08a47626bc

View File

@@ -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;
}