diff --git a/src/DependencyResolver/ResolveDependencyWithComposer.php b/src/DependencyResolver/ResolveDependencyWithComposer.php index 059ca117..67d5e7d5 100644 --- a/src/DependencyResolver/ResolveDependencyWithComposer.php +++ b/src/DependencyResolver/ResolveDependencyWithComposer.php @@ -114,7 +114,11 @@ private function assertBuildProviderProvidersBundledExtensions(TargetPlatform $t throw BundledPhpExtensionRefusal::forPhpExtraVersion($targetPlatform->phpBinaryPath); } - $buildProvider = $targetPlatform->phpBinaryPath->buildProvider(); + $buildProvider = $targetPlatform->phpBinaryPath->buildProvider(); + if (! $buildProvider) { + return; + } + $identifiedBuildProvider = false; $note = 'Note: '; @@ -143,16 +147,19 @@ private function assertBuildProviderProvidersBundledExtensions(TargetPlatform $t 'CentOS', 'Fedora Project', 'Red Hat, Inc.', - 'Remi\'s RPM repository #StandWithUkraine', + '|^Remi\'s RPM repository |', 'Rocky Enterprise Software Foundation', ]; - if (in_array($buildProvider, $rpmProviders)) { - $identifiedBuildProvider = true; - $this->io->write(sprintf( - '%sYou should probably use "dnf install php-%s" instead', - $note, - $piePackage->extensionName()->name(), - )); + foreach ($rpmProviders as $rpmProvider) { + if ($buildProvider === $rpmProvider || ($rpmProvider[0] === '|' && preg_match($rpmProvider, $buildProvider))) { + $identifiedBuildProvider = true; + $this->io->write(sprintf( + '%sYou should probably use "dnf install php-%s" instead', + $note, + $piePackage->extensionName()->name(), + )); + break; + } } if ($buildProvider === 'Homebrew') {