瀏覽代碼

Exclude platform require/provides from InstalledVersions as concrete ones are also not listed

Jordi Boggiano 5 年之前
父節點
當前提交
56811b4c8f
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      src/Composer/Repository/FilesystemRepository.php

+ 8 - 0
src/Composer/Repository/FilesystemRepository.php

@@ -155,6 +155,10 @@ class FilesystemRepository extends WritableArrayRepository
             // add provided/replaced packages
             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())) {
+                        continue;
+                    }
                     $replaced = $replace->getPrettyConstraint();
                     if ($replaced === 'self.version') {
                         $replaced = $package->getPrettyVersion();
@@ -164,6 +168,10 @@ 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())) {
+                        continue;
+                    }
                     $provided = $provide->getPrettyConstraint();
                     if ($provided === 'self.version') {
                         $provided = $package->getPrettyVersion();