Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
CRAP | |
50.00% |
10 / 20 |
DefaultSingleLazyPluginCollection | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
16.00 | |
50.00% |
10 / 20 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
initializePlugin | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
getConfiguration | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
setConfiguration | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
|||
addInstanceId | |
0.00% |
0 / 1 |
2.06 | |
75.00% |
3 / 4 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Plugin\DefaultSingleLazyPluginCollection. | |
*/ | |
namespace Drupal\Core\Plugin; | |
use Drupal\Component\Plugin\PluginManagerInterface; | |
use Drupal\Component\Plugin\LazyPluginCollection; | |
use Drupal\Component\Plugin\ConfigurablePluginInterface; | |
use Drupal\Core\DependencyInjection\DependencySerializationTrait; | |
/** | |
* Provides a default plugin collection for a plugin type. | |
* | |
* A plugin collection usually stores multiple plugins, and is used to lazily | |
* instantiate them. When only one plugin is needed, it is still best practice | |
* to encapsulate all of the instantiation logic in a plugin collection. This | |
* class can be used directly, or subclassed to add further exception handling | |
* in self::initializePlugin(). | |
*/ | |
class DefaultSingleLazyPluginCollection extends LazyPluginCollection { | |
use DependencySerializationTrait; | |
/** | |
* The manager used to instantiate the plugins. | |
* | |
* @var \Drupal\Component\Plugin\PluginManagerInterface | |
*/ | |
protected $manager; | |
/** | |
* An array of configuration to instantiate the plugin with. | |
* | |
* @var array | |
*/ | |
protected $configuration; | |
/** | |
* The instance ID used for this plugin collection. | |
* | |
* @var string | |
*/ | |
protected $instanceId; | |
/** | |
* Constructs a new DefaultSingleLazyPluginCollection object. | |
* | |
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager | |
* The manager to be used for instantiating plugins. | |
* @param string $instance_id | |
* The ID of the plugin instance. | |
* @param array $configuration | |
* An array of configuration. | |
*/ | |
public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration) { | |
$this->manager = $manager; | |
$this->instanceId = $instance_id; | |
// This is still needed by the parent LazyPluginCollection class. | |
$this->instanceIDs = array($instance_id => $instance_id); | |
$this->configuration = $configuration; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function initializePlugin($instance_id) { | |
$this->set($instance_id, $this->manager->createInstance($instance_id, $this->configuration)); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getConfiguration() { | |
$plugin = $this->get($this->instanceId); | |
if ($plugin instanceof ConfigurablePluginInterface) { | |
return $plugin->getConfiguration(); | |
} | |
else { | |
return $this->configuration; | |
} | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function setConfiguration($configuration) { | |
$plugin = $this->get($this->instanceId); | |
if ($plugin instanceof ConfigurablePluginInterface) { | |
$plugin->setConfiguration($configuration); | |
} | |
$this->configuration = $configuration; | |
return $this; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function addInstanceId($id, $configuration = NULL) { | |
parent::addInstanceId($id, $configuration); | |
if ($configuration !== NULL) { | |
$this->setConfiguration($configuration); | |
} | |
} | |
} |