mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 23:02:48 +08:00
改进composer自动加载性能
This commit is contained in:
@@ -284,6 +284,25 @@ class Loader
|
|||||||
// 注册系统自动加载
|
// 注册系统自动加载
|
||||||
spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true);
|
spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true);
|
||||||
|
|
||||||
|
// Composer 自动加载支持
|
||||||
|
if (is_dir(VENDOR_PATH . 'composer')) {
|
||||||
|
if (PHP_VERSION_ID >= 50600 && is_file(VENDOR_PATH . 'composer' . DS . 'autoload_static.php')) {
|
||||||
|
require VENDOR_PATH . 'composer' . DS . 'autoload_static.php';
|
||||||
|
|
||||||
|
$declaredClass = get_declared_classes();
|
||||||
|
$composerClass = array_pop($declaredClass);
|
||||||
|
|
||||||
|
self::$prefixLengthsPsr4 = $composerClass::$prefixLengthsPsr4;
|
||||||
|
|
||||||
|
self::$prefixDirsPsr4 = property_exists($composerClass, 'prefixDirsPsr4') ? $composerClass::$prefixDirsPsr4 : [];
|
||||||
|
|
||||||
|
self::$prefixesPsr0 = property_exists($composerClass, 'prefixesPsr0') ? $composerClass::$prefixesPsr0 : [];
|
||||||
|
self::$map = property_exists($composerClass, 'classMap') ? $composerClass::$classMap : [];
|
||||||
|
} else {
|
||||||
|
self::registerComposerLoader();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 注册命名空间定义
|
// 注册命名空间定义
|
||||||
self::addNamespace([
|
self::addNamespace([
|
||||||
'think' => LIB_PATH . 'think' . DS,
|
'think' => LIB_PATH . 'think' . DS,
|
||||||
@@ -296,11 +315,6 @@ class Loader
|
|||||||
self::addClassMap(__include_file(RUNTIME_PATH . 'classmap' . EXT));
|
self::addClassMap(__include_file(RUNTIME_PATH . 'classmap' . EXT));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Composer 自动加载支持
|
|
||||||
if (is_dir(VENDOR_PATH . 'composer')) {
|
|
||||||
self::registerComposerLoader();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自动加载 extend 目录
|
// 自动加载 extend 目录
|
||||||
self::$fallbackDirsPsr4[] = rtrim(EXTEND_PATH, DS);
|
self::$fallbackDirsPsr4[] = rtrim(EXTEND_PATH, DS);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user