DefaultsTestPluginManager.php

Same filename and directory in other branches
  1. 9 core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php
  2. 10 core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php
  3. 11.x core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php

Namespace

Drupal\plugin_test\Plugin

File

core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php

View source
<?php

namespace Drupal\plugin_test\Plugin;

use Drupal\Component\Plugin\Discovery\StaticDiscovery;
use Drupal\Component\Plugin\Factory\DefaultFactory;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;

/**
 * Defines a plugin manager used by Plugin API unit tests.
 */
class DefaultsTestPluginManager extends DefaultPluginManager {
    
    /**
     * Constructs a new DefaultsTestPluginManager instance.
     *
     * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
     *   The module handler.
     */
    public function __construct(ModuleHandlerInterface $module_handler) {
        // Create the object that can be used to return definitions for all the
        // plugins available for this type. Most real plugin managers use a richer
        // discovery implementation, but StaticDiscovery lets us add some simple
        // mock plugins for unit testing.
        $this->discovery = new StaticDiscovery();
        $this->factory = new DefaultFactory($this, 'Drupal\\Component\\Plugin\\PluginInspectionInterface');
        $this->moduleHandler = $module_handler;
        // Specify default values.
        $this->defaults = [
            'metadata' => [
                'default' => TRUE,
            ],
        ];
        // Add a plugin with a custom value.
        $this->discovery
            ->setDefinition('test_block1', [
            'class' => 'Drupal\\plugin_test\\Plugin\\plugin_test\\mock_block\\MockTestBlock',
            'metadata' => [
                'custom' => TRUE,
            ],
        ]);
        // Add a plugin that overrides the default value.
        $this->discovery
            ->setDefinition('test_block2', [
            'class' => 'Drupal\\plugin_test\\Plugin\\plugin_test\\mock_block\\MockTestBlock',
            'metadata' => [
                'custom' => TRUE,
                'default' => FALSE,
            ],
        ]);
    }

}

Classes

Title Deprecated Summary
DefaultsTestPluginManager Defines a plugin manager used by Plugin API unit tests.

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