class LimitedPluginDiscoveryDecorator in Plugin 8.2
Provides a filtered plugin manager.
Hierarchy
- class \Drupal\plugin\PluginDiscovery\PluginDiscoveryDecorator implements CachedDiscoveryInterface, DiscoveryInterface uses DiscoveryTrait, DependencySerializationTrait
- class \Drupal\plugin\PluginDiscovery\LimitedPluginDiscoveryDecorator implements LimitedPluginDiscoveryInterface
Expanded class hierarchy of LimitedPluginDiscoveryDecorator
2 files declare their use of LimitedPluginDiscoveryDecorator
- AdvancedPluginSelectorBasePluginSelectorForm.php in tests/
modules/ plugin_test_helper/ src/ AdvancedPluginSelectorBasePluginSelectorForm.php - LimitedPluginDiscoveryDecoratorTest.php in tests/
src/ Unit/ PluginDiscovery/ LimitedPluginDiscoveryDecoratorTest.php
File
- src/
PluginDiscovery/ LimitedPluginDiscoveryDecorator.php, line 8
Namespace
Drupal\plugin\PluginDiscoveryView source
class LimitedPluginDiscoveryDecorator extends PluginDiscoveryDecorator implements LimitedPluginDiscoveryInterface {
/**
* The discovery limit.
*
* @var string[]|null
* An array of plugin IDs or NULL if the limit is not set.
*/
protected $discoveryLimit;
/**
* {@inheritdoc}
*/
protected function processDecoratedDefinitions(array $decorated_definitions) {
if (is_array($this->discoveryLimit)) {
return array_intersect_key($decorated_definitions, array_flip($this->discoveryLimit));
}
else {
return $decorated_definitions;
}
}
/**
* {@inheritdoc}
*/
public function setDiscoveryLimit(array $plugin_ids) {
$this->discoveryLimit = $plugin_ids;
return $this;
}
/**
* {@inheritdoc}
*/
public function resetDiscoveryLimit() {
$this->discoveryLimit = NULL;
$this
->clearCachedDefinitions();
return $this;
}
}