Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      CRAP |         | 
      0.00%  | 
      0 / 18  | 
     
| BlockPluginCollection |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      56 |         | 
      0.00%  | 
      0 / 18  | 
     
| __construct |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| get |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 2  | 
     |||
| initializePlugin |         | 
      0.00%  | 
      0 / 1  | 
      30 |         | 
      0.00%  | 
      0 / 13  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\block\BlockPluginCollection. | |
| */ | |
| namespace Drupal\block; | |
| use Drupal\Component\Plugin\Exception\PluginException; | |
| use Drupal\Component\Plugin\PluginManagerInterface; | |
| use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection; | |
| /** | |
| * Provides a collection of block plugins. | |
| */ | |
| class BlockPluginCollection extends DefaultSingleLazyPluginCollection { | |
| /** | |
| * The block ID this plugin collection belongs to. | |
| * | |
| * @var string | |
| */ | |
| protected $blockId; | |
| /** | |
| * Constructs a new BlockPluginCollection. | |
| * | |
| * @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. | |
| * @param string $block_id | |
| * The unique ID of the block entity using this plugin. | |
| */ | |
| public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration, $block_id) { | |
| parent::__construct($manager, $instance_id, $configuration); | |
| $this->blockId = $block_id; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| * | |
| * @return \Drupal\Core\Block\BlockPluginInterface | |
| */ | |
| public function &get($instance_id) { | |
| return parent::get($instance_id); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected function initializePlugin($instance_id) { | |
| if (!$instance_id) { | |
| throw new PluginException("The block '{$this->blockId}' did not specify a plugin."); | |
| } | |
| try { | |
| parent::initializePlugin($instance_id); | |
| } | |
| catch (PluginException $e) { | |
| $module = $this->configuration['provider']; | |
| // Ignore blocks belonging to uninstalled modules, but re-throw valid | |
| // exceptions when the module is installed and the plugin is | |
| // misconfigured. | |
| if (!$module || \Drupal::moduleHandler()->moduleExists($module)) { | |
| throw $e; | |
| } | |
| } | |
| } | |
| } |