From 64e7a27f74844acbb79dac75a04a51a9309e654e Mon Sep 17 00:00:00 2001 From: yunwuxin <448901948@qq.com> Date: Wed, 18 Apr 2018 18:26:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9Bcomposer=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Loader.php | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/library/think/Loader.php b/library/think/Loader.php index 841c37d9..d813a5d7 100644 --- a/library/think/Loader.php +++ b/library/think/Loader.php @@ -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; } } }