Browse Source

Fix creation of ComposerRepository, refs #587

Jordi Boggiano 13 years ago
parent
commit
7837be0621

+ 4 - 3
src/Composer/Command/CreateProjectCommand.php

@@ -82,12 +82,13 @@ EOT
             $dm->setPreferSource(true);
         }
 
+        $config = Factory::createConfig();
         if (null === $repositoryUrl) {
-            $sourceRepo = new ComposerRepository(array('url' => 'http://packagist.org'), $io);
+            $sourceRepo = new ComposerRepository(array('url' => 'http://packagist.org'), $io, $config);
         } elseif ("json" === pathinfo($repositoryUrl, PATHINFO_EXTENSION)) {
             $sourceRepo = new FilesystemRepository(new JsonFile($repositoryUrl, new RemoteFilesystem($io)));
         } elseif (0 === strpos($repositoryUrl, 'http')) {
-            $sourceRepo = new ComposerRepository(array('url' => $repositoryUrl), $io);
+            $sourceRepo = new ComposerRepository(array('url' => $repositoryUrl), $io, $config);
         } else {
             throw new \InvalidArgumentException("Invalid repository url given. Has to be a .json file or an http url.");
         }
@@ -112,7 +113,7 @@ EOT
 
         $io->write('<info>Installing ' . $package->getName() . ' as new project.</info>', true);
         $projectInstaller = new ProjectInstaller($directory, $dm);
-        $projectInstaller->install($package);
+        $projectInstaller->install(new FilesystemRepository(new JsonFile('php://memory')), $package);
 
         $io->write('<info>Created project into directory ' . $directory . '</info>', true);
         chdir($directory);

+ 2 - 1
src/Composer/Command/InitCommand.php

@@ -13,6 +13,7 @@
 namespace Composer\Command;
 
 use Composer\Json\JsonFile;
+use Composer\Factory;
 use Composer\Repository\CompositeRepository;
 use Composer\Repository\PlatformRepository;
 use Composer\Repository\ComposerRepository;
@@ -229,7 +230,7 @@ EOT
         if (!$this->repos) {
             $this->repos = new CompositeRepository(array(
                 new PlatformRepository,
-                new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO())
+                new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig())
             ));
         }
 

+ 2 - 1
src/Composer/Command/SearchCommand.php

@@ -20,6 +20,7 @@ use Composer\Repository\PlatformRepository;
 use Composer\Repository\ComposerRepository;
 use Composer\Package\PackageInterface;
 use Composer\Package\AliasPackage;
+use Composer\Factory;
 
 /**
  * @author Robert Schönthal <seroscho@googlemail.com>
@@ -54,7 +55,7 @@ EOT
         } else {
             $output->writeln('No composer.json found in the current directory, showing packages from packagist.org');
             $installedRepo = $platformRepo;
-            $packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO());
+            $packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig());
             $repos = new CompositeRepository(array($installedRepo, $packagist));
         }
 

+ 2 - 1
src/Composer/Command/ShowCommand.php

@@ -13,6 +13,7 @@
 namespace Composer\Command;
 
 use Composer\Composer;
+use Composer\Factory;
 use Composer\Package\PackageInterface;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputArgument;
@@ -65,7 +66,7 @@ EOT
         } else {
             $output->writeln('No composer.json found in the current directory, showing packages from packagist.org');
             $installedRepo = $platformRepo;
-            $packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO());
+            $packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig());
             $repos = new CompositeRepository(array($installedRepo, $packagist));
         }
 

+ 1 - 1
src/Composer/Factory.php

@@ -84,7 +84,7 @@ class Factory
         }
 
         // Configuration defaults
-        $config = $this->createConfig();
+        $config = static::createConfig();
         $config->merge($localConfig);
 
         $vendorDir = $config->get('vendor-dir');