Provides a collection of block plugins.
Expanded class hierarchy of BlockPluginBag
class BlockPluginBag extends PluginBag {
/**
* The manager used to instantiate the plugins.
*
* @var \Drupal\Component\Plugin\PluginManagerInterface
*/
protected $manager;
/**
* Constructs a BlockPluginBag object.
*
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager
* The manager to be used for instantiating plugins.
* @param array $instance_ids
* The ids of the plugin instances with which we are dealing.
* @param \Drupal\block\Plugin\Core\Entity\Block $entity
* The Block entity that holds our configuration.
*/
public function __construct(PluginManagerInterface $manager, array $instance_ids, Block $entity) {
$this->manager = $manager;
$this->entity = $entity;
$this->instanceIDs = drupal_map_assoc($instance_ids);
}
/**
* {@inheritdoc}
*/
protected function initializePlugin($instance_id) {
if (!$instance_id) {
throw new PluginException(format_string("The block '@block' did not specify a plugin.", array(
'@block' => $this->entity
->id(),
)));
}
if (isset($this->pluginInstances[$instance_id])) {
return;
}
$settings = $this->entity
->get('settings');
try {
$this->pluginInstances[$instance_id] = $this->manager
->createInstance($instance_id, $settings);
} catch (PluginException $e) {
$module = $settings['module'];
// Ignore blocks belonging to disabled modules, but re-throw valid
// exceptions when the module is enabled and the plugin is misconfigured.
if (!$module || \Drupal::moduleHandler()
->moduleExists($module)) {
throw $e;
}
}
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BlockPluginBag:: |
protected | property | The manager used to instantiate the plugins. | |
BlockPluginBag:: |
protected | function |
Initializes a plugin and stores the result in $this->pluginInstances. Overrides PluginBag:: |
|
BlockPluginBag:: |
public | function | Constructs a BlockPluginBag object. | |
PluginBag:: |
protected | property | Stores the IDs of all potential plugin instances. | |
PluginBag:: |
protected | property | Stores all instantiated plugins. | |
PluginBag:: |
public | function | Adds an instance ID to the array of available instance IDs. | |
PluginBag:: |
public | function | Clears all instantiated plugins. | 1 |
PluginBag:: |
public | function | Implements \Countable::count(). | |
PluginBag:: |
public | function | Implements \Iterator::current(). | |
PluginBag:: |
public | function | Retrieves a plugin instance, initializing it if necessary. | |
PluginBag:: |
public | function | Returns all instance IDs. | |
PluginBag:: |
public | function | Determines if a plugin instance exists. | |
PluginBag:: |
public | function | Implements \Iterator::key(). | |
PluginBag:: |
public | function | Implements \Iterator::next(). | |
PluginBag:: |
public | function | Removes an initialized plugin. | 1 |
PluginBag:: |
public | function | Implements \Iterator::rewind(). | |
PluginBag:: |
public | function | Stores an initialized plugin. | |
PluginBag:: |
public | function | Sets the instance IDs property. | |
PluginBag:: |
public | function | Implements \Iterator::valid(). |