mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进composer自动加载
This commit is contained in:
@@ -56,9 +56,9 @@ class Loader
|
|||||||
private static $fallbackDirsPsr0 = [];
|
private static $fallbackDirsPsr0 = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array 自动加载的文件
|
* @var array 需要加载的文件
|
||||||
*/
|
*/
|
||||||
private static $autoloadFiles = [];
|
private static $files = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自动加载
|
* 自动加载
|
||||||
@@ -292,12 +292,11 @@ class Loader
|
|||||||
$declaredClass = get_declared_classes();
|
$declaredClass = get_declared_classes();
|
||||||
$composerClass = array_pop($declaredClass);
|
$composerClass = array_pop($declaredClass);
|
||||||
|
|
||||||
foreach (['prefixLengthsPsr4', 'prefixDirsPsr4', 'fallbackDirsPsr4', 'prefixesPsr0', 'fallbackDirsPsr0', 'classMap'] as $attr) {
|
foreach (['prefixLengthsPsr4', 'prefixDirsPsr4', 'fallbackDirsPsr4', 'prefixesPsr0', 'fallbackDirsPsr0', 'classMap', 'files'] as $attr) {
|
||||||
if (property_exists($composerClass, $attr)) {
|
if (property_exists($composerClass, $attr)) {
|
||||||
self::${$attr} = $composerClass::${$attr};
|
self::${$attr} = $composerClass::${$attr};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
self::registerComposerLoader();
|
self::registerComposerLoader();
|
||||||
}
|
}
|
||||||
@@ -348,22 +347,20 @@ class Loader
|
|||||||
self::addClassMap($classMap);
|
self::addClassMap($classMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_file(VENDOR_PATH . 'composer/autoload_files.php')) {
|
||||||
|
self::$files = require VENDOR_PATH . 'composer/autoload_files.php';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载composer autofile文件
|
// 加载composer autofile文件
|
||||||
public static function loadComposerAutoloadFiles()
|
public static function loadComposerAutoloadFiles()
|
||||||
{
|
{
|
||||||
if (is_file(VENDOR_PATH . 'composer/autoload_files.php')) {
|
foreach (self::$files as $fileIdentifier => $file) {
|
||||||
$includeFiles = require VENDOR_PATH . 'composer/autoload_files.php';
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
__require_file($file);
|
||||||
if (isset($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty(self::$autoloadFiles[$fileIdentifier])) {
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
__require_file($file);
|
|
||||||
self::$autoloadFiles[$fileIdentifier] = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user