Browse Source

Reset composer to load the new requirements, fixes #3511

Jordi Boggiano 10 years ago
parent
commit
d249d0c121

+ 9 - 0
src/Composer/Command/Command.php

@@ -68,6 +68,15 @@ abstract class Command extends BaseCommand
         $this->composer = $composer;
     }
 
+    /**
+     * Removes the cached composer instance
+     */
+    public function resetComposer()
+    {
+        $this->composer = null;
+        $this->getApplication()->resetComposer();
+    }
+
     /**
      * @return IOInterface
      */

+ 2 - 0
src/Composer/Command/RequireCommand.php

@@ -125,6 +125,8 @@ EOT
         $updateDevMode = !$input->getOption('update-no-dev');
 
         // Update packages
+        $this->resetComposer();
+        $composer = $this->getComposer();
         $composer->getDownloadManager()->setOutputProgress(!$input->getOption('no-progress'));
         $io = $this->getIO();
 

+ 8 - 0
src/Composer/Console/Application.php

@@ -219,6 +219,14 @@ class Application extends BaseApplication
         return $this->composer;
     }
 
+    /**
+     * Removes the cached composer instance
+     */
+    public function resetComposer()
+    {
+        $this->composer = null;
+    }
+
     /**
      * @return IOInterface
      */