function MockMenuBlockDeriver::getDerivativeDefinitions

Same name and namespace in other branches
  1. 11.x core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php \Drupal\plugin_test\Plugin\plugin_test\mock_block\MockMenuBlockDeriver::getDerivativeDefinitions()
  2. 10 core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php \Drupal\plugin_test\Plugin\plugin_test\mock_block\MockMenuBlockDeriver::getDerivativeDefinitions()
  3. 9 core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php \Drupal\plugin_test\Plugin\plugin_test\mock_block\MockMenuBlockDeriver::getDerivativeDefinitions()
  4. 8.9.x core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php \Drupal\plugin_test\Plugin\plugin_test\mock_block\MockMenuBlockDeriver::getDerivativeDefinitions()

Gets the definition of all derivatives of a base plugin.

Parameters

array|\Drupal\Component\Plugin\Definition\PluginDefinitionInterface $base_plugin_definition: The definition of the base plugin from which the derivative plugin is derived. It is maybe an entire object or just some array, depending on the discovery mechanism.

Return value

array An array of full derivative definitions keyed on derivative id.

Overrides DeriverInterface::getDerivativeDefinitions

1 call to MockMenuBlockDeriver::getDerivativeDefinitions()
MockMenuBlockDeriver::getDerivativeDefinition in core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php
Gets the definition of a derivative plugin.

File

core/modules/system/tests/modules/plugin_test/src/Plugin/plugin_test/mock_block/MockMenuBlockDeriver.php, line 33

Class

MockMenuBlockDeriver
Mock implementation of DeriverInterface for the mock menu block plugin.

Namespace

Drupal\plugin_test\Plugin\plugin_test\mock_block

Code

public function getDerivativeDefinitions($base_plugin_definition) {
  // This isn't strictly necessary, but it helps reduce clutter in
  // DerivativePluginTest::testDerivativeDecorator()'s $expected variable.
  // Since derivative definitions don't need further deriving, we remove this
  // key from the returned definitions.
  unset($base_plugin_definition['deriver']);
  // Here, we create some mock menu block definitions for menus that might
  // exist in a typical Drupal site. In a real implementation, we would query
  // Drupal's configuration to find out which menus actually exist.
  $derivatives = [
    'main_menu' => [
      'label' => $this->t('Main menu'),
    ] + $base_plugin_definition,
    'navigation' => [
      'label' => $this->t('Navigation'),
    ] + $base_plugin_definition,
    'foo' => [
      // Instead of the derivative label, the specific label will be used.
'label' => $this->t('Derivative label'),
      // This setting will be merged in.
'setting' => 'default',
    ] + $base_plugin_definition,
  ];
  return $derivatives;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.