diff --git a/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php b/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php index 667f365..20007d1 100644 --- a/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php +++ b/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php @@ -17,6 +17,11 @@ /** * {@inheritdoc} */ + abstract public function getDefinitions(); + + /** + * {@inheritdoc} + */ public function getDefinition($plugin_id, $exception_on_invalid = TRUE) { $definitions = $this->getDefinitions(); return $this->doGetDefinition($definitions, $plugin_id, $exception_on_invalid); diff --git a/core/lib/Drupal/Component/Plugin/Discovery/StaticDiscovery.php b/core/lib/Drupal/Component/Plugin/Discovery/StaticDiscovery.php index 72a7243..18f51b7 100644 --- a/core/lib/Drupal/Component/Plugin/Discovery/StaticDiscovery.php +++ b/core/lib/Drupal/Component/Plugin/Discovery/StaticDiscovery.php @@ -19,6 +19,9 @@ class StaticDiscovery implements DiscoveryInterface { * Implements Drupal\Component\Plugin\Discovery\DiscoveryInterface::getDefinitions(). */ public function getDefinitions() { + if (!$this->definitions) { + $this->definitions = array(); + } return $this->definitions; } diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php index bd1efc2..f9af6b2 100644 --- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php +++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php @@ -89,7 +89,7 @@ public function testDefaultPluginManagerWithDisabledModule() { $plugin_manager = new TestPluginManager($this->namespaces, $definitions, $module_handler, 'test_alter_hook'); - $this->assertEmpty($plugin_manager->getDefinition('cherry'), 'Plugin information of a disabled module is not available'); + $this->assertEmpty($plugin_manager->getDefinition('cherry', FALSE), 'Plugin information of a disabled module is not available'); } /**