1
0
Fork 0

Merge pull request #330 from Seldaek/repositories

[BC Break] Refactor repositories configuration
pull/319/merge
Nils Adermann 2012-02-20 01:58:52 -08:00
commit 03a9e0dfee
3 changed files with 16 additions and 6 deletions

View File

@ -51,6 +51,7 @@ class Factory
// Configuration defaults // Configuration defaults
$composerConfig = array( $composerConfig = array(
'vendor-dir' => 'vendor', 'vendor-dir' => 'vendor',
'repositories' => array(),
); );
$packageConfig = $file->read(); $packageConfig = $file->read();
@ -71,7 +72,13 @@ class Factory
$rm = $this->createRepositoryManager($io); $rm = $this->createRepositoryManager($io);
// load default repository unless it's explicitly disabled // load default repository unless it's explicitly disabled
if (!isset($packageConfig['repositories']['packagist']) || $packageConfig['repositories']['packagist'] !== false) { $loadPackagist = true;
foreach ($packageConfig['repositories'] as $repo) {
if (isset($repo['packagist']) && $repo['packagist'] === false) {
$loadPackagist = false;
}
}
if ($loadPackagist) {
$this->addPackagistRepository($rm); $this->addPackagistRepository($rm);
} }

View File

@ -44,14 +44,17 @@ class RootPackageLoader extends ArrayLoader
$package = parent::load($config); $package = parent::load($config);
if (isset($config['repositories'])) { if (isset($config['repositories'])) {
foreach ($config['repositories'] as $repoName => $repo) { foreach ($config['repositories'] as $index => $repo) {
if (false === $repo && 'packagist' === $repoName) { if (isset($repo['packagist']) && $repo['packagist'] === false) {
continue; continue;
} }
if (!is_array($repo)) { if (!is_array($repo)) {
throw new \UnexpectedValueException('Repository '.$repoName.' in '.$package->getPrettyName().' '.$package->getVersion().' should be an array, '.gettype($repo).' given'); throw new \UnexpectedValueException('Repository '.$index.' should be an array, '.gettype($repo).' given');
} }
$repository = $this->manager->createRepository(key($repo), current($repo)); if (!isset($repo['type'])) {
throw new \UnexpectedValueException('Repository '.$index.' must have a type defined');
}
$repository = $this->manager->createRepository($repo['type'], $repo);
$this->manager->addRepository($repository); $this->manager->addRepository($repository);
} }
$package->setRepositories($config['repositories']); $package->setRepositories($config['repositories']);

View File

@ -33,7 +33,7 @@ class PackageRepository extends ArrayRepository
*/ */
public function __construct(array $config) public function __construct(array $config)
{ {
$this->config = $config; $this->config = $config['package'];
} }
/** /**