TestPluginManager.php in Drupal 8
Same filename in this branch
Same filename and directory in other branches
Namespace
Drupal\plugin_test\PluginFile
core/modules/system/tests/modules/plugin_test/src/Plugin/TestPluginManager.phpView source
<?php
namespace Drupal\plugin_test\Plugin;
use Drupal\Component\Plugin\PluginManagerBase;
use Drupal\Component\Plugin\Discovery\StaticDiscovery;
use Drupal\Component\Plugin\Factory\DefaultFactory;
/**
* Defines a plugin manager used by Plugin API unit tests.
*/
class TestPluginManager extends PluginManagerBase {
public function __construct() {
// 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();
// A simple plugin: a mock user login block.
$this->discovery
->setDefinition('user_login', [
'label' => 'User login',
'class' => 'Drupal\\plugin_test\\Plugin\\plugin_test\\mock_block\\MockUserLoginBlock',
]);
// In addition to finding all of the plugins available for a type, a plugin
// type must also be able to create instances of that plugin. For example, a
// specific instance of a "User login" block, configured with a custom
// title. To handle plugin instantiation, plugin managers can use one of the
// factory classes included with the plugin system, or create their own.
// DefaultFactory is a simple, general purpose factory suitable for
// many kinds of plugin types. Factories need access to the plugin
// definitions (e.g., since that's where the plugin's class is specified),
// so we provide it the discovery object.
$this->factory = new DefaultFactory($this->discovery);
}
}
Classes
Name | Description |
---|---|
TestPluginManager | Defines a plugin manager used by Plugin API unit tests. |