Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / lib / Drupal / Core / Block / BlockManager.php
index 30b52b612566e34ceab848513110697284912a71..026d810fc058b3330376d67532d94fd42abd7559 100644 (file)
@@ -6,8 +6,9 @@ use Drupal\Component\Plugin\FallbackPluginManagerInterface;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Plugin\CategorizingPluginManagerTrait;
-use Drupal\Core\Plugin\Context\ContextAwarePluginManagerTrait;
 use Drupal\Core\Plugin\DefaultPluginManager;
+use Drupal\Core\Plugin\FilteredPluginManagerTrait;
+use Psr\Log\LoggerInterface;
 
 /**
  * Manages discovery and instantiation of block plugins.
@@ -21,7 +22,14 @@ class BlockManager extends DefaultPluginManager implements BlockManagerInterface
   use CategorizingPluginManagerTrait {
     getSortedDefinitions as traitGetSortedDefinitions;
   }
-  use ContextAwarePluginManagerTrait;
+  use FilteredPluginManagerTrait;
+
+  /**
+   * The logger.
+   *
+   * @var \Psr\Log\LoggerInterface
+   */
+  protected $logger;
 
   /**
    * Constructs a new \Drupal\Core\Block\BlockManager object.
@@ -33,12 +41,22 @@ class BlockManager extends DefaultPluginManager implements BlockManagerInterface
    *   Cache backend instance to use.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler to invoke the alter hook with.
+   * @param \Psr\Log\LoggerInterface $logger
+   *   The logger.
    */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
+  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LoggerInterface $logger) {
     parent::__construct('Plugin/Block', $namespaces, $module_handler, 'Drupal\Core\Block\BlockPluginInterface', 'Drupal\Core\Block\Annotation\Block');
 
-    $this->alterInfo('block');
+    $this->alterInfo($this->getType());
     $this->setCacheBackend($cache_backend, 'block_plugins');
+    $this->logger = $logger;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getType() {
+    return 'block';
   }
 
   /**
@@ -67,4 +85,12 @@ class BlockManager extends DefaultPluginManager implements BlockManagerInterface
     return 'broken';
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function handlePluginNotFound($plugin_id, array $configuration) {
+    $this->logger->warning('The "%plugin_id" was not found', ['%plugin_id' => $plugin_id]);
+    return parent::handlePluginNotFound($plugin_id, $configuration);
+  }
+
 }