66
77use Composer \Composer ;
88use Composer \Installer \PackageEvent ;
9+ use Composer \IO \IOInterface ;
910use Composer \IO \NullIO ;
1011use Composer \Repository \CompositeRepository ;
1112use Composer \Repository \InstalledArrayRepository ;
1213use Composer \Repository \InstalledRepository ;
1314use Composer \Repository \PlatformRepository ;
1415use Composer \Repository \RepositoryFactory ;
16+ use Composer \Repository \RepositoryInterface ;
1517use Composer \Repository \RepositoryInterface as ComposerRepositoryInterface ;
1618use Composer \Repository \RootPackageRepository ;
1719
20+ use function method_exists ;
21+
1822/**
1923 * @internal
2024 */
@@ -37,7 +41,7 @@ public static function create(Composer $composer): self
3741 public function detect (PackageEvent $ event , string $ packageName ): PackageProviderDetectionInterface
3842 {
3943 $ installedRepo = new InstalledRepository ($ this ->prepareRepositoriesForInstalledRepository ());
40- $ defaultRepos = new CompositeRepository (RepositoryFactory:: defaultRepos (new NullIO ()));
44+ $ defaultRepos = new CompositeRepository ($ this -> createDefaultRepos (new NullIO ()));
4145
4246 if (
4347 ($ match = $ defaultRepos ->findPackage ($ packageName , '* ' ))
@@ -63,4 +67,16 @@ private function prepareRepositoriesForInstalledRepository(): array
6367 new PlatformRepository ([], $ platformOverrides ),
6468 ];
6569 }
70+
71+ /**
72+ * @return RepositoryInterface[]
73+ */
74+ private function createDefaultRepos (IOInterface $ io ): array
75+ {
76+ if (method_exists (RepositoryFactory::class, 'defaultReposWithDefaultManager ' )) {
77+ return RepositoryFactory::defaultReposWithDefaultManager ($ io );
78+ }
79+
80+ return RepositoryFactory::defaultRepos ($ io );
81+ }
6682}
0 commit comments