Procházet zdrojové kódy

Refactored the search of suggested packages to support replacements

Fixes #752
Christophe Coevoet před 12 roky
rodič
revize
d0faa016c1
1 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 10 1
      src/Composer/Installer.php

+ 10 - 1
src/Composer/Installer.php

@@ -188,7 +188,16 @@ class Installer
 
         // output suggestions
         foreach ($this->suggestedPackages as $suggestion) {
-            if (!$installedRepo->findPackages($suggestion['target'])) {
+            $target = $suggestion['target'];
+            if ($installedRepo->filterPackages(function (PackageInterface $package) use ($target) {
+                // check the name first as it is the common case
+                if ($package->getName() === $target) {
+                    return false;
+                }
+                if (in_array($target, $package->getNames())) {
+                    return false;
+                }
+            })) {
                 $this->io->write($suggestion['source'].' suggests installing '.$suggestion['target'].' ('.$suggestion['reason'].')');
             }
         }