Pārlūkot izejas kodu

Move solver debugging code into solver subclass

Nils Adermann 13 gadi atpakaļ
vecāks
revīzija
286593cf99

+ 83 - 0
src/Composer/DependencyResolver/DebugSolver.php

@@ -0,0 +1,83 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\DependencyResolver;
+
+/**
+ * @author Nils Adermann <naderman@naderman.de>
+ */
+class DebugSolver extends Solver
+{
+    private function printDecisionMap()
+    {
+        echo "\nDecisionMap: \n";
+        foreach ($this->decisionMap as $packageId => $level) {
+            if ($packageId === 0) {
+                continue;
+            }
+            if ($level > 0) {
+                echo '    +' . $this->pool->packageById($packageId)."\n";
+            } elseif ($level < 0) {
+                echo '    -' . $this->pool->packageById($packageId)."\n";
+            } else {
+                echo '    ?' . $this->pool->packageById($packageId)."\n";
+            }
+        }
+        echo "\n";
+    }
+
+    private function printDecisionQueue()
+    {
+        echo "DecisionQueue: \n";
+        foreach ($this->decisionQueue as $i => $literal) {
+            echo '    ' . $literal . ' ' . $this->decisionQueueWhy[$i]." level ".$this->decisionMap[$literal->getPackageId()]."\n";
+        }
+        echo "\n";
+    }
+
+    private function printWatches()
+    {
+        echo "\nWatches:\n";
+        foreach ($this->watches as $literalId => $watch) {
+            echo '  '.$this->literalFromId($literalId)."\n";
+            $queue = array(array('    ', $watch));
+
+            while (!empty($queue)) {
+                list($indent, $watch) = array_pop($queue);
+
+                echo $indent.$watch;
+
+                if ($watch) {
+                    echo ' [id='.$watch->getId().',watch1='.$this->literalFromId($watch->watch1).',watch2='.$this->literalFromId($watch->watch2)."]";
+                }
+
+                echo "\n";
+
+                if ($watch && ($watch->next1 == $watch || $watch->next2 == $watch)) {
+                    if ($watch->next1 == $watch) {
+                        echo $indent."    1 *RECURSION*";
+                    }
+                    if ($watch->next2 == $watch) {
+                        echo $indent."    2 *RECURSION*";
+                    }
+                } elseif ($watch && ($watch->next1 || $watch->next2)) {
+                    $indent = str_replace(array('1', '2'), ' ', $indent);
+
+                    array_push($queue, array($indent.'    2 ', $watch->next2));
+                    array_push($queue, array($indent.'    1 ', $watch->next1));
+                }
+            }
+
+            echo "\n";
+        }
+    }
+}

+ 0 - 64
src/Composer/DependencyResolver/Solver.php

@@ -1050,68 +1050,4 @@ class Solver
             break;
         }
     }
-
-    private function printDecisionMap()
-    {
-        echo "\nDecisionMap: \n";
-        foreach ($this->decisionMap as $packageId => $level) {
-            if ($packageId === 0) {
-                continue;
-            }
-            if ($level > 0) {
-                echo '    +' . $this->pool->packageById($packageId)."\n";
-            } elseif ($level < 0) {
-                echo '    -' . $this->pool->packageById($packageId)."\n";
-            } else {
-                echo '    ?' . $this->pool->packageById($packageId)."\n";
-            }
-        }
-        echo "\n";
-    }
-
-    private function printDecisionQueue()
-    {
-        echo "DecisionQueue: \n";
-        foreach ($this->decisionQueue as $i => $literal) {
-            echo '    ' . $literal . ' ' . $this->decisionQueueWhy[$i]." level ".$this->decisionMap[$literal->getPackageId()]."\n";
-        }
-        echo "\n";
-    }
-
-    private function printWatches()
-    {
-        echo "\nWatches:\n";
-        foreach ($this->watches as $literalId => $watch) {
-            echo '  '.$this->literalFromId($literalId)."\n";
-            $queue = array(array('    ', $watch));
-
-            while (!empty($queue)) {
-                list($indent, $watch) = array_pop($queue);
-
-                echo $indent.$watch;
-
-                if ($watch) {
-                    echo ' [id='.$watch->getId().',watch1='.$this->literalFromId($watch->watch1).',watch2='.$this->literalFromId($watch->watch2)."]";
-                }
-
-                echo "\n";
-
-                if ($watch && ($watch->next1 == $watch || $watch->next2 == $watch)) {
-                    if ($watch->next1 == $watch) {
-                        echo $indent."    1 *RECURSION*";
-                    }
-                    if ($watch->next2 == $watch) {
-                        echo $indent."    2 *RECURSION*";
-                    }
-                } elseif ($watch && ($watch->next1 || $watch->next2)) {
-                    $indent = str_replace(array('1', '2'), ' ', $indent);
-
-                    array_push($queue, array($indent.'    2 ', $watch->next2));
-                    array_push($queue, array($indent.'    1 ', $watch->next1));
-                }
-            }
-
-            echo "\n";
-        }
-    }
 }