Skip to content

Commit 10600c6

Browse files
committed
fix: add method_exists() check and improve error message
1 parent 43d81fb commit 10600c6

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

system/Autoloader/Autoloader.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,16 @@ private function loadComposerNamespaces(ClassLoader $composer, array $composerPa
373373
unset($namespacePaths['CodeIgniter\\']);
374374
}
375375

376-
$packageList = InstalledVersions::getAllRawData()[0]['versions'];
376+
if (method_exists(InstalledVersions::class, 'getAllRawData')) {
377+
// This method requires Composer 2.0.14 or later.
378+
$packageList = InstalledVersions::getAllRawData()[0]['versions'];
379+
} else {
380+
throw new RuntimeException(
381+
'Your Composer version is too old.'
382+
. ' Please update Composer (run `composer self-update`) and remove your vendor/ directory,'
383+
. ' and run `composer update`.'
384+
);
385+
}
377386

378387
// Check config for $composerPackages.
379388
$only = $composerPackages['only'] ?? [];

0 commit comments

Comments
 (0)