Add PackageRepository to define inline packages
Example: { "repositories": { "Monolog": { "package": { "source": { "url": "git://github.com/Seldaek/monolog.git", "type": "git", "reference": "1.0.1" }, "version": "1.0.1", "name": "monolog/monolog" } } } }pull/61/head
parent
9b24734c9d
commit
aeab3c16fd
|
@ -17,6 +17,7 @@ $rm->setLocalRepository(new Repository\FilesystemRepository(new JsonFile('.compo
|
|||
$rm->addRepository(new Repository\ComposerRepository('http://packagist.org'));
|
||||
$rm->setRepositoryClass('composer', 'Composer\Repository\ComposerRepository');
|
||||
$rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository');
|
||||
$rm->setRepositoryClass('package', 'Composer\Repository\PackageRepository');
|
||||
|
||||
// initialize download manager
|
||||
$dm = new Downloader\DownloadManager($preferSource = false);
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<?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\Repository;
|
||||
|
||||
use Composer\Json\JsonFile;
|
||||
use Composer\Package\PackageInterface;
|
||||
use Composer\Package\Loader\ArrayLoader;
|
||||
use Composer\Package\Dumper\ArrayDumper;
|
||||
|
||||
/**
|
||||
* Package repository.
|
||||
*
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
class PackageRepository extends ArrayRepository
|
||||
{
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* Initializes filesystem repository.
|
||||
*
|
||||
* @param array $config package definition
|
||||
*/
|
||||
public function __construct(array $config)
|
||||
{
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes repository (reads file, or remote address).
|
||||
*/
|
||||
protected function initialize()
|
||||
{
|
||||
parent::initialize();
|
||||
|
||||
if (!is_numeric(key($this->config))) {
|
||||
$this->config = array($this->config);
|
||||
}
|
||||
|
||||
foreach ($this->config as $package) {
|
||||
$loader = new ArrayLoader($this->repositoryManager);
|
||||
$package = $loader->load($package);
|
||||
$this->addPackage($package);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue