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->addRepository(new Repository\ComposerRepository('http://packagist.org'));
|
||||||
$rm->setRepositoryClass('composer', 'Composer\Repository\ComposerRepository');
|
$rm->setRepositoryClass('composer', 'Composer\Repository\ComposerRepository');
|
||||||
$rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository');
|
$rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository');
|
||||||
|
$rm->setRepositoryClass('package', 'Composer\Repository\PackageRepository');
|
||||||
|
|
||||||
// initialize download manager
|
// initialize download manager
|
||||||
$dm = new Downloader\DownloadManager($preferSource = false);
|
$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