diff core/lib/Drupal/Core/Block/BlockManager.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 4c8ae668cc8c
children
line wrap: on
line diff
--- a/core/lib/Drupal/Core/Block/BlockManager.php	Tue Jul 10 15:07:59 2018 +0100
+++ b/core/lib/Drupal/Core/Block/BlockManager.php	Thu Feb 28 13:21:36 2019 +0000
@@ -6,8 +6,9 @@
 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 @@
   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 @@
    *   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 @@
     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);
+  }
+
 }