Browse Source

Define the calculation of package priorities in a single method

Nils Adermann 13 năm trước cách đây
mục cha
commit
44369472be
1 tập tin đã thay đổi với 10 bổ sung5 xóa
  1. 10 5
      src/Composer/DependencyResolver/DefaultPolicy.php

+ 10 - 5
src/Composer/DependencyResolver/DefaultPolicy.php

@@ -63,6 +63,11 @@ class DefaultPolicy implements PolicyInterface
         return true;
     }
 
+    public function getPriority(Pool $pool, PackageInterface $package)
+    {
+        return $pool->getPriority($package->getRepository());
+    }
+
     public function selectPreferedPackages(Pool $pool, RepositoryInterface $installed, array $literals)
     {
         $packages = $this->groupLiteralsByNamePreferInstalled($installed, $literals);
@@ -119,7 +124,7 @@ class DefaultPolicy implements PolicyInterface
             return 1;
         }
 
-        return ($pool->getPriority($a->getRepository()) > $pool->getPriority($b->getRepository())) ? -1 : 1;
+        return ($this->getPriority($pool, $a) > $this->getPriority($pool, $b)) ? -1 : 1;
     }
 
     protected function pruneToBestVersion($literals)
@@ -169,18 +174,18 @@ class DefaultPolicy implements PolicyInterface
         $priority = null;
 
         foreach ($literals as $literal) {
-            $repo = $literal->getPackage()->getRepository();
+            $package = $literal->getPackage();
 
-            if ($repo === $installed) {
+            if ($package->getRepository() === $installed) {
                 $selected[] = $literal;
                 continue;
             }
 
             if (null === $priority) {
-                $priority = $pool->getPriority($repo);
+                $priority = $this->getPriority($pool, $package);
             }
 
-            if ($pool->getPriority($repo) != $priority) {
+            if ($this->getPriority($pool, $package) != $priority) {
                 break;
             }