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