Skip to content

Commit 9d70b71

Browse files
authored
Merge pull request #51 from boesing/qa/forward-compatibility-composer
Forward compatibility for composer v2.3.6+
2 parents 6af4680 + a520b7d commit 9d70b71

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/PackageProvider/PackageProviderDetectionFactory.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@
66

77
use Composer\Composer;
88
use Composer\Installer\PackageEvent;
9+
use Composer\IO\IOInterface;
910
use Composer\IO\NullIO;
1011
use Composer\Repository\CompositeRepository;
1112
use Composer\Repository\InstalledArrayRepository;
1213
use Composer\Repository\InstalledRepository;
1314
use Composer\Repository\PlatformRepository;
1415
use Composer\Repository\RepositoryFactory;
16+
use Composer\Repository\RepositoryInterface;
1517
use Composer\Repository\RepositoryInterface as ComposerRepositoryInterface;
1618
use 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

Comments
 (0)