|
@@ -28,12 +28,13 @@ use Composer\DependencyResolver\Pool;
|
|
* Plugin manager
|
|
* Plugin manager
|
|
*
|
|
*
|
|
* @author Nils Adermann <naderman@naderman.de>
|
|
* @author Nils Adermann <naderman@naderman.de>
|
|
|
|
+ * @author Jordi Boggiano <j.boggiano@seld.be>
|
|
*/
|
|
*/
|
|
class PluginManager
|
|
class PluginManager
|
|
{
|
|
{
|
|
protected $composer;
|
|
protected $composer;
|
|
protected $io;
|
|
protected $io;
|
|
- protected $globalRepository;
|
|
|
|
|
|
+ protected $globalComposer;
|
|
protected $versionParser;
|
|
protected $versionParser;
|
|
|
|
|
|
protected $plugins = array();
|
|
protected $plugins = array();
|
|
@@ -44,15 +45,15 @@ class PluginManager
|
|
/**
|
|
/**
|
|
* Initializes plugin manager
|
|
* Initializes plugin manager
|
|
*
|
|
*
|
|
- * @param Composer $composer
|
|
|
|
* @param IOInterface $io
|
|
* @param IOInterface $io
|
|
- * @param RepositoryInterface $globalRepository
|
|
|
|
|
|
+ * @param Composer $composer
|
|
|
|
+ * @param Composer $globalComposer
|
|
*/
|
|
*/
|
|
- public function __construct(Composer $composer, IOInterface $io, RepositoryInterface $globalRepository = null)
|
|
|
|
|
|
+ public function __construct(IOInterface $io, Composer $composer, Composer $globalComposer = null)
|
|
{
|
|
{
|
|
- $this->composer = $composer;
|
|
|
|
$this->io = $io;
|
|
$this->io = $io;
|
|
- $this->globalRepository = $globalRepository;
|
|
|
|
|
|
+ $this->composer = $composer;
|
|
|
|
+ $this->globalComposer = $globalComposer;
|
|
$this->versionParser = new VersionParser();
|
|
$this->versionParser = new VersionParser();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -62,12 +63,12 @@ class PluginManager
|
|
public function loadInstalledPlugins()
|
|
public function loadInstalledPlugins()
|
|
{
|
|
{
|
|
$repo = $this->composer->getRepositoryManager()->getLocalRepository();
|
|
$repo = $this->composer->getRepositoryManager()->getLocalRepository();
|
|
-
|
|
|
|
|
|
+ $globalRepo = $this->globalComposer ? $this->globalComposer->getRepositoryManager()->getLocalRepository() : null;
|
|
if ($repo) {
|
|
if ($repo) {
|
|
$this->loadRepository($repo);
|
|
$this->loadRepository($repo);
|
|
}
|
|
}
|
|
- if ($this->globalRepository) {
|
|
|
|
- $this->loadRepository($this->globalRepository);
|
|
|
|
|
|
+ if ($globalRepo) {
|
|
|
|
+ $this->loadRepository($globalRepo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -206,11 +207,13 @@ class PluginManager
|
|
}
|
|
}
|
|
$classes = is_array($extra['class']) ? $extra['class'] : array($extra['class']);
|
|
$classes = is_array($extra['class']) ? $extra['class'] : array($extra['class']);
|
|
|
|
|
|
- $pool = new Pool('dev');
|
|
|
|
$localRepo = $this->composer->getRepositoryManager()->getLocalRepository();
|
|
$localRepo = $this->composer->getRepositoryManager()->getLocalRepository();
|
|
|
|
+ $globalRepo = $this->globalComposer ? $this->globalComposer->getRepositoryManager()->getLocalRepository() : null;
|
|
|
|
+
|
|
|
|
+ $pool = new Pool('dev');
|
|
$pool->addRepository($localRepo);
|
|
$pool->addRepository($localRepo);
|
|
- if ($this->globalRepository) {
|
|
|
|
- $pool->addRepository($this->globalRepository);
|
|
|
|
|
|
+ if ($globalRepo) {
|
|
|
|
+ $pool->addRepository($globalRepo);
|
|
}
|
|
}
|
|
|
|
|
|
$autoloadPackages = array($package->getName() => $package);
|
|
$autoloadPackages = array($package->getName() => $package);
|
|
@@ -219,7 +222,7 @@ class PluginManager
|
|
$generator = $this->composer->getAutoloadGenerator();
|
|
$generator = $this->composer->getAutoloadGenerator();
|
|
$autoloads = array();
|
|
$autoloads = array();
|
|
foreach ($autoloadPackages as $autoloadPackage) {
|
|
foreach ($autoloadPackages as $autoloadPackage) {
|
|
- $downloadPath = $this->getInstallPath($autoloadPackage, ($this->globalRepository && $this->globalRepository->hasPackage($autoloadPackage)));
|
|
|
|
|
|
+ $downloadPath = $this->getInstallPath($autoloadPackage, ($globalRepo && $globalRepo->hasPackage($autoloadPackage)));
|
|
$autoloads[] = array($autoloadPackage, $downloadPath);
|
|
$autoloads[] = array($autoloadPackage, $downloadPath);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -261,9 +264,6 @@ class PluginManager
|
|
return $this->composer->getInstallationManager()->getInstallPath($package);
|
|
return $this->composer->getInstallationManager()->getInstallPath($package);
|
|
}
|
|
}
|
|
|
|
|
|
- $targetDir = $package->getTargetDir();
|
|
|
|
- $vendorDir = $this->composer->getConfig()->get('home').'/vendor';
|
|
|
|
-
|
|
|
|
- return ($vendorDir ? $vendorDir.'/' : '').$package->getPrettyName().($targetDir ? '/'.$targetDir : '');
|
|
|
|
|
|
+ return $this->globalComposer->getInstallationManager()->getInstallPath($package);
|
|
}
|
|
}
|
|
}
|
|
}
|