|
@@ -802,14 +802,14 @@ class Installer
|
|
|
/**
|
|
|
* Build a regexp from a package name, expanding * globs as required
|
|
|
*
|
|
|
- * @param $whiteListedPattern
|
|
|
+ * @param string $whiteListedPattern
|
|
|
* @return string
|
|
|
*/
|
|
|
private function packageNameToRegexp($whiteListedPattern)
|
|
|
{
|
|
|
$cleanedWhiteListedPattern = str_replace('\\*', '.*', preg_quote($whiteListedPattern));
|
|
|
- $patternRegexp = "{^" . $cleanedWhiteListedPattern . "$}i";
|
|
|
- return $patternRegexp;
|
|
|
+
|
|
|
+ return "{^" . $cleanedWhiteListedPattern . "$}i";
|
|
|
}
|
|
|
|
|
|
private function extractPlatformRequirements($links)
|
|
@@ -868,10 +868,10 @@ class Installer
|
|
|
|
|
|
$depPackages = $pool->whatProvides($packageName);
|
|
|
|
|
|
- $nameMatchesRequiredPackage = in_array($packageName, $requiredPackageNames);
|
|
|
+ $nameMatchesRequiredPackage = in_array($packageName, $requiredPackageNames, true);
|
|
|
|
|
|
+ // check if the name is a glob pattern that did not match directly
|
|
|
if (!$nameMatchesRequiredPackage) {
|
|
|
- //maybe the name is a glob or similar that won't match directly
|
|
|
$whitelistPatternRegexp = $this->packageNameToRegexp($packageName);
|
|
|
foreach ($rootRequiredPackageNames as $rootRequiredPackageName) {
|
|
|
if (preg_match($whitelistPatternRegexp, $rootRequiredPackageName)) {
|