mirror of
https://github.com/composer/composer
synced 2025-05-11 09:32:55 +00:00
Register plugin only one time when it's present in global and project mode
This commit is contained in:
parent
cec1627acf
commit
11b945046f
2 changed files with 23 additions and 0 deletions
|
@ -37,6 +37,7 @@ class PluginManager
|
|||
protected $versionParser;
|
||||
|
||||
protected $plugins = array();
|
||||
protected $registeredPlugins = array();
|
||||
|
||||
private static $classCounter = 0;
|
||||
|
||||
|
@ -191,6 +192,10 @@ class PluginManager
|
|||
{
|
||||
$oldInstallerPlugin = ($package->getType() === 'composer-installer');
|
||||
|
||||
if (in_array($package->getName(), $this->registeredPlugins)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$extra = $package->getExtra();
|
||||
if (empty($extra['class'])) {
|
||||
throw new \UnexpectedValueException('Error while installing '.$package->getPrettyName().', composer-plugin packages should have a class defined in their extra key to be usable.');
|
||||
|
@ -233,6 +238,7 @@ class PluginManager
|
|||
} else {
|
||||
$plugin = new $class();
|
||||
$this->addPlugin($plugin);
|
||||
$this->registeredPlugins[] = $package->getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue