From 0662fa2662b6bb7d683aaaf89e4ec3dfb5e833f6 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 12 Nov 2021 09:44:34 +0100 Subject: [PATCH] Fix loading files for plugins/scripts (#10279) --- src/Composer/Autoload/AutoloadGenerator.php | 6 ------ src/Composer/EventDispatcher/EventDispatcher.php | 6 ++++++ src/Composer/Plugin/PluginManager.php | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Composer/Autoload/AutoloadGenerator.php b/src/Composer/Autoload/AutoloadGenerator.php index d8f6dea0d..f284f309c 100644 --- a/src/Composer/Autoload/AutoloadGenerator.php +++ b/src/Composer/Autoload/AutoloadGenerator.php @@ -621,12 +621,6 @@ EOF; } } - if (isset($autoloads['files'])) { - foreach ($autoloads['files'] as $fileIdentifier => $file) { - composerRequire($fileIdentifier, $file); - } - } - return $loader; } diff --git a/src/Composer/EventDispatcher/EventDispatcher.php b/src/Composer/EventDispatcher/EventDispatcher.php index 629b0deed..ade63b128 100644 --- a/src/Composer/EventDispatcher/EventDispatcher.php +++ b/src/Composer/EventDispatcher/EventDispatcher.php @@ -508,6 +508,12 @@ class EventDispatcher $this->loader = $generator->createLoader($map, $this->composer->getConfig()->get('vendor-dir')); $this->loader->register(false); + if (isset($map['files'])) { + foreach ($map['files'] as $fileIdentifier => $file) { + \Composer\Autoload\composerRequire($fileIdentifier, $file); + } + } + return $scripts[$event->getName()]; } diff --git a/src/Composer/Plugin/PluginManager.php b/src/Composer/Plugin/PluginManager.php index 39052d84f..0918d9c02 100644 --- a/src/Composer/Plugin/PluginManager.php +++ b/src/Composer/Plugin/PluginManager.php @@ -201,6 +201,12 @@ class PluginManager $classLoader = $generator->createLoader($map, $this->composer->getConfig()->get('vendor-dir')); $classLoader->register(false); + if (isset($map['files'])) { + foreach ($map['files'] as $fileIdentifier => $file) { + \Composer\Autoload\composerRequire($fileIdentifier, $file); + } + } + foreach ($classes as $class) { if (class_exists($class, false)) { $class = trim($class, '\\');