1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-09 08:32:56 +00:00

Add internal support for multiple default composer repositories.

This commit is contained in:
Danny Berger 2012-04-26 20:29:43 -04:00
parent 762f469cd9
commit 8d6d155153
8 changed files with 130 additions and 30 deletions

View file

@ -17,6 +17,7 @@ use Composer\Installer;
use Composer\Installer\ProjectInstaller;
use Composer\IO\IOInterface;
use Composer\Repository\ComposerRepository;
use Composer\Repository\CompositeRepository;
use Composer\Repository\FilesystemRepository;
use Composer\Repository\InstalledFilesystemRepository;
use Symfony\Component\Console\Input\InputArgument;
@ -85,7 +86,7 @@ EOT
$config = Factory::createConfig();
if (null === $repositoryUrl) {
$sourceRepo = new ComposerRepository(array('url' => 'http://packagist.org'), $io, $config);
$sourceRepo = new CompositeRepository(Factory::createComposerRepositories($io, $config));
} elseif ("json" === pathinfo($repositoryUrl, PATHINFO_EXTENSION)) {
$sourceRepo = new FilesystemRepository(new JsonFile($repositoryUrl, new RemoteFilesystem($io)));
} elseif (0 === strpos($repositoryUrl, 'http')) {

View file

@ -228,9 +228,9 @@ EOT
// init repos
if (!$this->repos) {
$this->repos = new CompositeRepository(array(
new PlatformRepository,
new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig())
$this->repos = new CompositeRepository(array_merge(
array(new PlatformRepository),
Factory::createComposerRepositories($this->getIO(), Factory::createConfig())
));
}

View file

@ -53,10 +53,10 @@ EOT
$installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
$repos = new CompositeRepository(array_merge(array($installedRepo), $composer->getRepositoryManager()->getRepositories()));
} else {
$output->writeln('No composer.json found in the current directory, showing packages from packagist.org');
$defaultRepos = Factory::createComposerRepositories($this->getIO(), Factory::createConfig());
$output->writeln('No composer.json found in the current directory, showing packages from ' . str_replace('http://', '', implode(', ', array_keys($defaultRepos))));
$installedRepo = $platformRepo;
$packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig());
$repos = new CompositeRepository(array($installedRepo, $packagist));
$repos = new CompositeRepository(array_merge(array($installedRepo), $defaultRepos));
}
$tokens = $input->getArgument('tokens');

View file

@ -64,10 +64,10 @@ EOT
$installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
$repos = new CompositeRepository(array_merge(array($installedRepo), $composer->getRepositoryManager()->getRepositories()));
} else {
$output->writeln('No composer.json found in the current directory, showing packages from packagist.org');
$defaultRepos = Factory::createComposerRepositories($this->getIO(), Factory::createConfig());
$output->writeln('No composer.json found in the current directory, showing packages from ' . str_replace('http://', '', implode(', ', array_keys($defaultRepos))));
$installedRepo = $platformRepo;
$packagist = new ComposerRepository(array('url' => 'http://packagist.org'), $this->getIO(), Factory::createConfig());
$repos = new CompositeRepository(array($installedRepo, $packagist));
$repos = new CompositeRepository(array_merge(array($installedRepo), $defaultRepos));
}
// show single package or single version