diff --git a/src/Composer/Autoload/AutoloadGenerator.php b/src/Composer/Autoload/AutoloadGenerator.php index 7c1729eab..da4f252b8 100644 --- a/src/Composer/Autoload/AutoloadGenerator.php +++ b/src/Composer/Autoload/AutoloadGenerator.php @@ -122,7 +122,7 @@ class AutoloadGenerator { if (is_array($ignorePlatformReqs)) { $this->ignorePlatformReqs = array_filter($ignorePlatformReqs, function ($req) { - return (bool) preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $req); + return PlatformRepository::isPlatformPackage($req); }); } else { $this->ignorePlatformReqs = (bool) $ignorePlatformReqs; diff --git a/src/Composer/Command/CheckPlatformReqsCommand.php b/src/Composer/Command/CheckPlatformReqsCommand.php index c80884444..6a23f2a4a 100644 --- a/src/Composer/Command/CheckPlatformReqsCommand.php +++ b/src/Composer/Command/CheckPlatformReqsCommand.php @@ -82,7 +82,7 @@ EOT * @var Link[] $links */ foreach ($requires as $require => $links) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $require)) { + if (PlatformRepository::isPlatformPackage($require)) { $candidates = $installedRepo->findPackagesWithReplacersAndProviders($require); if ($candidates) { $reqResults = array(); diff --git a/src/Composer/Command/InitCommand.php b/src/Composer/Command/InitCommand.php index 204038951..a4456e79b 100644 --- a/src/Composer/Command/InitCommand.php +++ b/src/Composer/Command/InitCommand.php @@ -737,7 +737,7 @@ EOT if (!$package) { // platform packages can not be found in the pool in versions other than the local platform's has // so if platform reqs are ignored we just take the user's word for it - if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($name, $ignorePlatformReqs))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $name)) { + if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($name, $ignorePlatformReqs))) && PlatformRepository::isPlatformPackage($name)) { return array($name, $requiredVersion ?: '*'); } diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 635d56bf3..6a6315a64 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -234,7 +234,7 @@ EOT if (empty($package)) { $options = $input->getOptions(); if (!isset($options['working-dir']) || !file_exists('composer.json')) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $input->getArgument('package')) && !$input->getOption('platform')) { + if (PlatformRepository::isPlatformPackage($input->getArgument('package')) && !$input->getOption('platform')) { throw new \InvalidArgumentException('Package ' . $packageFilter . ' not found, try using --platform (-p) to show platform packages.'); } throw new \InvalidArgumentException('Package ' . $packageFilter . ' not found'); diff --git a/src/Composer/DependencyResolver/Rule.php b/src/Composer/DependencyResolver/Rule.php index ee71929e5..5cd2e7e7d 100644 --- a/src/Composer/DependencyResolver/Rule.php +++ b/src/Composer/DependencyResolver/Rule.php @@ -130,7 +130,7 @@ abstract class Rule } if ($this->getReason() === self::RULE_PACKAGE_REQUIRES) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $this->reasonData->getTarget())) { + if (PlatformRepository::isPlatformPackage($this->reasonData->getTarget())) { return false; } foreach ($request->getFixedPackages() as $package) { @@ -147,7 +147,7 @@ abstract class Rule } if ($this->getReason() === self::RULE_ROOT_REQUIRE) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $this->reasonData['packageName'])) { + if (PlatformRepository::isPlatformPackage($this->reasonData['packageName'])) { return false; } foreach ($request->getFixedPackages() as $package) { diff --git a/src/Composer/DependencyResolver/RuleSetGenerator.php b/src/Composer/DependencyResolver/RuleSetGenerator.php index e16ce7790..3daee5845 100644 --- a/src/Composer/DependencyResolver/RuleSetGenerator.php +++ b/src/Composer/DependencyResolver/RuleSetGenerator.php @@ -176,7 +176,7 @@ class RuleSetGenerator } foreach ($package->getRequires() as $link) { - if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($link->getTarget(), $ignorePlatformReqs, true))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $link->getTarget())) { + if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($link->getTarget(), $ignorePlatformReqs, true))) && PlatformRepository::isPlatformPackage($link->getTarget())) { continue; } @@ -200,7 +200,7 @@ class RuleSetGenerator continue; } - if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($link->getTarget(), $ignorePlatformReqs, true))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $link->getTarget())) { + if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($link->getTarget(), $ignorePlatformReqs, true))) && PlatformRepository::isPlatformPackage($link->getTarget())) { continue; } @@ -246,7 +246,7 @@ class RuleSetGenerator } foreach ($request->getRequires() as $packageName => $constraint) { - if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($packageName, $ignorePlatformReqs, true))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $packageName)) { + if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($packageName, $ignorePlatformReqs, true))) && PlatformRepository::isPlatformPackage($packageName)) { continue; } diff --git a/src/Composer/DependencyResolver/Solver.php b/src/Composer/DependencyResolver/Solver.php index fa5e2c586..5c8f242f4 100644 --- a/src/Composer/DependencyResolver/Solver.php +++ b/src/Composer/DependencyResolver/Solver.php @@ -169,7 +169,7 @@ class Solver protected function checkForRootRequireProblems(Request $request, $ignorePlatformReqs) { foreach ($request->getRequires() as $packageName => $constraint) { - if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($packageName, $ignorePlatformReqs, true))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $packageName)) { + if ((true === $ignorePlatformReqs || (is_array($ignorePlatformReqs) && in_array($packageName, $ignorePlatformReqs, true))) && PlatformRepository::isPlatformPackage($packageName)) { continue; } diff --git a/src/Composer/DependencyResolver/Transaction.php b/src/Composer/DependencyResolver/Transaction.php index f03419719..6d17d98cb 100644 --- a/src/Composer/DependencyResolver/Transaction.php +++ b/src/Composer/DependencyResolver/Transaction.php @@ -264,7 +264,7 @@ class Transaction if ($isPlugin || count(array_intersect($package->getNames(), $pluginRequires))) { // get the package's requires, but filter out any platform requirements $requires = array_filter(array_keys($package->getRequires()), function ($req) { - return !preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $req); + return !PlatformRepository::isPlatformPackage($req); }); // is this a plugin with no meaningful dependencies? diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index 523ecca6b..535ad8e4c 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -761,7 +761,7 @@ class Installer $rootRequires = array(); foreach ($requires as $req => $constraint) { // skip platform requirements from the root package to avoid filtering out existing platform packages - if ((true === $this->ignorePlatformReqs || (is_array($this->ignorePlatformReqs) && in_array($req, $this->ignorePlatformReqs, true))) && preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $req)) { + if ((true === $this->ignorePlatformReqs || (is_array($this->ignorePlatformReqs) && in_array($req, $this->ignorePlatformReqs, true))) && PlatformRepository::isPlatformPackage($req)) { continue; } if ($constraint instanceof Link) { @@ -870,7 +870,7 @@ class Installer { $platformReqs = array(); foreach ($links as $link) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $link->getTarget())) { + if (PlatformRepository::isPlatformPackage($link->getTarget())) { $platformReqs[$link->getTarget()] = $link->getPrettyConstraint(); } } @@ -1152,7 +1152,7 @@ class Installer { if (is_array($ignorePlatformReqs)) { $this->ignorePlatformReqs = array_filter($ignorePlatformReqs, function ($req) { - return (bool) preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $req); + return PlatformRepository::isPlatformPackage($req); }); } else { $this->ignorePlatformReqs = (bool) $ignorePlatformReqs; diff --git a/src/Composer/Json/JsonManipulator.php b/src/Composer/Json/JsonManipulator.php index d7daa4e26..5f50cee5b 100644 --- a/src/Composer/Json/JsonManipulator.php +++ b/src/Composer/Json/JsonManipulator.php @@ -117,7 +117,7 @@ class JsonManipulator private function sortPackages(array &$packages = array()) { $prefix = function ($requirement) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $requirement)) { + if (PlatformRepository::isPlatformPackage($requirement)) { return preg_replace( array( '/^php/', diff --git a/src/Composer/Package/Loader/ValidatingArrayLoader.php b/src/Composer/Package/Loader/ValidatingArrayLoader.php index 2c6621f0c..1bcb8b777 100644 --- a/src/Composer/Package/Loader/ValidatingArrayLoader.php +++ b/src/Composer/Package/Loader/ValidatingArrayLoader.php @@ -249,7 +249,7 @@ class ValidatingArrayLoader implements LoaderInterface ($this->flags & self::CHECK_UNBOUND_CONSTRAINTS) && 'require' === $linkType && $linkConstraint->matches($unboundConstraint) - && !preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $package) + && !PlatformRepository::isPlatformPackage($package) ) { $this->warnings[] = $linkType.'.'.$package.' : unbound version constraints ('.$constraint.') should be avoided'; } elseif ( @@ -372,7 +372,7 @@ class ValidatingArrayLoader implements LoaderInterface public static function hasPackageNamingError($name, $isLink = false) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $name)) { + if (PlatformRepository::isPlatformPackage($name)) { return; } diff --git a/src/Composer/Package/Version/VersionParser.php b/src/Composer/Package/Version/VersionParser.php index ab75126c3..7df6e7d70 100644 --- a/src/Composer/Package/Version/VersionParser.php +++ b/src/Composer/Package/Version/VersionParser.php @@ -51,7 +51,7 @@ class VersionParser extends SemverVersionParser for ($i = 0, $count = count($pairs); $i < $count; $i++) { $pair = preg_replace('{^([^=: ]+)[=: ](.*)$}', '$1 $2', trim($pairs[$i])); - if (false === strpos($pair, ' ') && isset($pairs[$i + 1]) && false === strpos($pairs[$i + 1], '/') && !preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $pairs[$i + 1])) { + if (false === strpos($pair, ' ') && isset($pairs[$i + 1]) && false === strpos($pairs[$i + 1], '/') && !PlatformRepository::isPlatformPackage($pairs[$i + 1])) { $pair .= ' '.$pairs[$i + 1]; $i++; } diff --git a/src/Composer/Repository/ComposerRepository.php b/src/Composer/Repository/ComposerRepository.php index f9018136b..34e5e85df 100644 --- a/src/Composer/Repository/ComposerRepository.php +++ b/src/Composer/Repository/ComposerRepository.php @@ -536,7 +536,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito { if (!$this->hasPartialPackages() || !isset($this->partialPackagesByName[$name])) { // skip platform packages, root package and composer-plugin-api - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $name) || '__root__' === $name) { + if (PlatformRepository::isPlatformPackage($name) || '__root__' === $name) { return array(); } @@ -715,7 +715,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito $realName = preg_replace('{~dev$}', '', $name); // skip platform packages, root package and composer-plugin-api - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $realName) || '__root__' === $realName) { + if (PlatformRepository::isPlatformPackage($realName) || '__root__' === $realName) { continue; } diff --git a/src/Composer/Repository/FilesystemRepository.php b/src/Composer/Repository/FilesystemRepository.php index fe19b420b..9125a97cd 100644 --- a/src/Composer/Repository/FilesystemRepository.php +++ b/src/Composer/Repository/FilesystemRepository.php @@ -156,7 +156,7 @@ class FilesystemRepository extends WritableArrayRepository foreach ($packages as $package) { foreach ($package->getReplaces() as $replace) { // exclude platform replaces as when they are really there we can not check for their presence - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $replace->getTarget())) { + if (PlatformRepository::isPlatformPackage($replace->getTarget())) { continue; } $replaced = $replace->getPrettyConstraint(); @@ -169,7 +169,7 @@ class FilesystemRepository extends WritableArrayRepository } foreach ($package->getProvides() as $provide) { // exclude platform provides as when they are really there we can not check for their presence - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $provide->getTarget())) { + if (PlatformRepository::isPlatformPackage($provide->getTarget())) { continue; } $provided = $provide->getPrettyConstraint(); diff --git a/src/Composer/Repository/InstalledRepository.php b/src/Composer/Repository/InstalledRepository.php index 49640fb90..6329710de 100644 --- a/src/Composer/Repository/InstalledRepository.php +++ b/src/Composer/Repository/InstalledRepository.php @@ -169,7 +169,7 @@ class InstalledRepository extends CompositeRepository // When inverting, we need to check for conflicts of the needles' requirements against installed packages if ($invert && $constraint && in_array($package->getName(), $needles) && $constraint->matches(new Constraint('=', $package->getVersion()))) { foreach ($package->getRequires() as $link) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $link->getTarget())) { + if (PlatformRepository::isPlatformPackage($link->getTarget())) { if ($this->findPackage($link->getTarget(), $link->getConstraint())) { continue; } diff --git a/src/Composer/Repository/PlatformRepository.php b/src/Composer/Repository/PlatformRepository.php index f6ec91864..d80a278b9 100644 --- a/src/Composer/Repository/PlatformRepository.php +++ b/src/Composer/Repository/PlatformRepository.php @@ -74,7 +74,7 @@ class PlatformRepository extends ArrayRepository // Later we might even replace the extensions instead. foreach ($this->overrides as $override) { // Check that it's a platform package. - if (!preg_match(self::PLATFORM_PACKAGE_REGEX, $override['name'])) { + if (!self::isPlatformPackage($override['name'])) { throw new \InvalidArgumentException('Invalid platform package name in config.platform: '.$override['name']); } diff --git a/src/Composer/Repository/RepositorySet.php b/src/Composer/Repository/RepositorySet.php index 04db0becd..34567e1b8 100644 --- a/src/Composer/Repository/RepositorySet.php +++ b/src/Composer/Repository/RepositorySet.php @@ -104,7 +104,7 @@ class RepositorySet $this->stabilityFlags = $stabilityFlags; $this->rootRequires = $rootRequires; foreach ($rootRequires as $name => $constraint) { - if (preg_match(PlatformRepository::PLATFORM_PACKAGE_REGEX, $name)) { + if (PlatformRepository::isPlatformPackage($name)) { unset($this->rootRequires[$name]); } }