From 62ab491708c801975d92d21548091281e43bc83b Mon Sep 17 00:00:00 2001 From: Helmut Hummel Date: Fri, 17 Apr 2026 10:37:35 +0200 Subject: [PATCH] [BUGFIX] Make autoload include idempotent Fixes: #30 --- src/IncludeFile.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/IncludeFile.php b/src/IncludeFile.php index 0ec2af6..a606e7c 100644 --- a/src/IncludeFile.php +++ b/src/IncludeFile.php @@ -11,6 +11,7 @@ */ use Composer\Composer; +use Composer\Config as ComposerConfig; use Composer\IO\IOInterface; use Composer\Util\Filesystem; use TYPO3\CMS\Composer\Plugin\Core\IncludeFile\TokenInterface; @@ -61,13 +62,15 @@ public function register() $this->io->writeError('Register typo3/class-alias-loader file in root package autoload definition', true, IOInterface::VERBOSE); // Generate and write the file - $includeFile = $this->composer->getConfig()->get('vendor-dir') . self::INCLUDE_FILE; + $config = $this->composer->getConfig(); + $includeFile = $config->get('vendor-dir') . self::INCLUDE_FILE; + $relativeIncludeFile = $config->get('vendor-dir', ComposerConfig::RELATIVE_PATHS) . self::INCLUDE_FILE; file_put_contents($includeFile, $this->getIncludeFileContent(dirname($includeFile))); // Register the file in the root package $rootPackage = $this->composer->getPackage(); $autoloadDefinition = $rootPackage->getAutoload(); - $autoloadDefinition['files'][] = $includeFile; + $autoloadDefinition['files'][] = $relativeIncludeFile; $rootPackage->setAutoload($autoloadDefinition); }