class RulesEventManager
Plugin manager for Rules events that can be triggered.
Rules events are primarily defined in *.rules.events.yml files.
Hierarchy
- class \Drupal\Component\Plugin\PluginManagerBase implements \Drupal\Component\Plugin\PluginManagerInterface uses \Drupal\Component\Plugin\Discovery\DiscoveryTrait
- class \Drupal\Core\Plugin\DefaultPluginManager extends \Drupal\Component\Plugin\PluginManagerBase implements \Drupal\Component\Plugin\PluginManagerInterface, \Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface, \Drupal\Core\Cache\CacheableDependencyInterface uses \Drupal\Component\Plugin\Discovery\DiscoveryCachedTrait, \Drupal\Core\Cache\UseCacheBackendTrait
- class \Drupal\rules\Core\RulesEventManager extends \Drupal\Core\Plugin\DefaultPluginManager implements \Drupal\Component\Plugin\CategorizingPluginManagerInterface uses \Drupal\Core\Plugin\CategorizingPluginManagerTrait
- class \Drupal\Core\Plugin\DefaultPluginManager extends \Drupal\Component\Plugin\PluginManagerBase implements \Drupal\Component\Plugin\PluginManagerInterface, \Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface, \Drupal\Core\Cache\CacheableDependencyInterface uses \Drupal\Component\Plugin\Discovery\DiscoveryCachedTrait, \Drupal\Core\Cache\UseCacheBackendTrait
Expanded class hierarchy of RulesEventManager
See also
\Drupal\rules\Core\RulesEventInterface
10 files declare their use of RulesEventManager
- AddEventForm.php in src/
Form/ AddEventForm.php - DeleteEventForm.php in src/
Form/ DeleteEventForm.php - EventPropertyAccessTest.php in tests/
src/ Unit/ Integration/ Event/ EventPropertyAccessTest.php - EventTestBase.php in tests/
src/ Unit/ Integration/ Event/ EventTestBase.php - GenericEventSubscriber.php in src/
EventSubscriber/ GenericEventSubscriber.php
1 string reference to 'RulesEventManager'
1 service uses RulesEventManager
File
-
src/
Core/ RulesEventManager.php, line 22
Namespace
Drupal\rules\CoreView source
class RulesEventManager extends DefaultPluginManager implements CategorizingPluginManagerInterface {
use CategorizingPluginManagerTrait;
/**
* Provides some default values for the definition of all Rules event plugins.
*
* @var array
*/
protected $defaults = [
'class' => RulesDefaultEventHandler::class,
];
/**
* The entity type bundle information manager.
*
* @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface
*/
protected $entityBundleInfo;
/**
* Constructor.
*
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler.
* @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_bundle_info
* The entity type bundle information manager.
*/
public function __construct(ModuleHandlerInterface $module_handler, EntityTypeBundleInfoInterface $entity_bundle_info) {
$this->alterInfo('rules_event_info');
$this->discovery = new ContainerDerivativeDiscoveryDecorator(new YamlDiscovery('rules.events', $module_handler->getModuleDirectories()));
$this->factory = new ContainerFactory($this, RulesEventHandlerInterface::class);
$this->moduleHandler = $module_handler;
$this->entityBundleInfo = $entity_bundle_info;
}
/**
* {@inheritdoc}
*/
public function createInstance($plugin_id, array $configuration = []) {
// If a fully qualified event name is passed, be sure to get the base name
// first.
$plugin_id = $this->getEventBaseName($plugin_id);
return parent::createInstance($plugin_id, $configuration);
}
/**
* {@inheritdoc}
*/
public function getDefinition($plugin_id, $exception_on_invalid = TRUE) {
// If a fully qualified event name is passed, be sure to get the base name
// first.
$base_plugin_id = $this->getEventBaseName($plugin_id);
$definition = parent::getDefinition($base_plugin_id, $exception_on_invalid);
if ($base_plugin_id != $plugin_id) {
$parts = explode('--', $plugin_id, 2);
$entity_type_id = explode(':', $parts[0], 2);
$bundles = $this->entityBundleInfo
->getBundleInfo($entity_type_id[1]);
// Replace the event label with the fully-qualified label.
// @todo This is a pretty terrible way of deriving the qualified label
// for a context definition. And it breaks translation.
$definition['label'] = $definition['label'] . " of type " . $bundles[$parts[1]]['label'];
}
return $definition;
}
/**
* {@inheritdoc}
*/
public function processDefinition(&$definition, $plugin_id) {
parent::processDefinition($definition, $plugin_id);
if (!isset($definition['context_definitions'])) {
$definition['context_definitions'] = [];
}
// Convert the flat context_definitions arrays to ContextDefinition objects.
foreach ($definition['context_definitions'] as $context_name => $values) {
$definition['context_definitions'][$context_name] = ContextDefinition::createFromArray($values);
}
}
/**
* Gets the base name of a configured event name.
*
* For a configured event name like {EVENT_NAME}--{SUFFIX}, the base event
* name {EVENT_NAME} is returned.
*
* @return string
* The event base name.
*
* @see \Drupal\rules\Core\RulesConfigurableEventHandlerInterface::getEventNameSuffix()
*/
public function getEventBaseName($event_name) {
// Cut off any suffix from a configured event name.
if (strpos($event_name, '--') !== FALSE) {
$parts = explode('--', $event_name, 2);
return $parts[0];
}
return $event_name;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
CategorizingPluginManagerTrait::getCategories | public | function | |||
CategorizingPluginManagerTrait::getGroupedDefinitions | public | function | |||
CategorizingPluginManagerTrait::getModuleHandler | public | function | Returns the module handler used. | ||
CategorizingPluginManagerTrait::getProviderName | protected | function | Gets the name of a provider. | ||
CategorizingPluginManagerTrait::getSortedDefinitions | public | function | |||
CategorizingPluginManagerTrait::processDefinitionCategory | protected | function | Processes a plugin definition to ensure there is a category. | ||
DefaultPluginManager::$additionalAnnotationNamespaces | protected | property | Additional annotation namespaces. | ||
DefaultPluginManager::$alterHook | protected | property | Name of the alter hook if one should be invoked. | ||
DefaultPluginManager::$cacheKey | protected | property | The cache key. | ||
DefaultPluginManager::$cacheTags | protected | property | An array of cache tags to use for the cached definitions. | ||
DefaultPluginManager::$moduleHandler | protected | property | The module handler to invoke the alter hook. | 1 | |
DefaultPluginManager::$namespaces | protected | property | An object of root paths that are traversable. | ||
DefaultPluginManager::$pluginDefinitionAnnotationName | protected | property | The name of the annotation that contains the plugin definition. | ||
DefaultPluginManager::$pluginInterface | protected | property | The interface each plugin should implement. | 1 | |
DefaultPluginManager::$subdir | protected | property | The subdirectory within a namespace to look for plugins. | ||
DefaultPluginManager::alterDefinitions | protected | function | Invokes the hook to alter the definitions if the alter hook is set. | 1 | |
DefaultPluginManager::alterInfo | protected | function | Sets the alter hook name. | ||
DefaultPluginManager::clearCachedDefinitions | public | function | Clears static and persistent plugin definition caches. | Overrides CachedDiscoveryInterface::clearCachedDefinitions | 6 |
DefaultPluginManager::extractProviderFromDefinition | protected | function | Extracts the provider from a plugin definition. | ||
DefaultPluginManager::findDefinitions | protected | function | Finds plugin definitions. | 7 | |
DefaultPluginManager::getCacheContexts | public | function | The cache contexts associated with this object. | Overrides CacheableDependencyInterface::getCacheContexts | |
DefaultPluginManager::getCachedDefinitions | protected | function | Returns the cached plugin definitions of the decorated discovery class. | ||
DefaultPluginManager::getCacheMaxAge | public | function | The maximum age for which this object may be cached. | Overrides CacheableDependencyInterface::getCacheMaxAge | |
DefaultPluginManager::getCacheTags | public | function | The cache tags associated with this object. | Overrides CacheableDependencyInterface::getCacheTags | |
DefaultPluginManager::getDefinitions | public | function | Gets the definition of all plugins for this type. | Overrides DiscoveryTrait::getDefinitions | 2 |
DefaultPluginManager::getDiscovery | protected | function | Gets the plugin discovery. | Overrides PluginManagerBase::getDiscovery | 13 |
DefaultPluginManager::getFactory | protected | function | Gets the plugin factory. | Overrides PluginManagerBase::getFactory | |
DefaultPluginManager::providerExists | protected | function | Determines if the provider of a definition exists. | 3 | |
DefaultPluginManager::setCacheBackend | public | function | Initialize the cache backend. | ||
DefaultPluginManager::setCachedDefinitions | protected | function | Sets a cache of plugin definitions for the decorated discovery class. | ||
DefaultPluginManager::useCaches | public | function | Disable the use of caches. | Overrides CachedDiscoveryInterface::useCaches | 1 |
DiscoveryCachedTrait::$definitions | protected | property | Cached definitions array. | 1 | |
DiscoveryTrait::doGetDefinition | protected | function | Gets a specific plugin definition. | ||
DiscoveryTrait::hasDefinition | public | function | |||
PluginManagerBase::$discovery | protected | property | The object that discovers plugins managed by this manager. | ||
PluginManagerBase::$factory | protected | property | The object that instantiates plugins managed by this manager. | ||
PluginManagerBase::$mapper | protected | property | The object that returns the preconfigured plugin instance appropriate for a particular runtime condition. | ||
PluginManagerBase::getInstance | public | function | 6 | ||
PluginManagerBase::handlePluginNotFound | protected | function | Allows plugin managers to specify custom behavior if a plugin is not found. | 1 | |
RulesEventManager::$defaults | protected | property | Provides some default values for the definition of all Rules event plugins. | Overrides DefaultPluginManager::$defaults | |
RulesEventManager::$entityBundleInfo | protected | property | The entity type bundle information manager. | ||
RulesEventManager::createInstance | public | function | Overrides PluginManagerBase::createInstance | ||
RulesEventManager::getDefinition | public | function | Overrides DiscoveryCachedTrait::getDefinition | ||
RulesEventManager::getEventBaseName | public | function | Gets the base name of a configured event name. | ||
RulesEventManager::processDefinition | public | function | Performs extra processing on plugin definitions. | Overrides DefaultPluginManager::processDefinition | |
RulesEventManager::__construct | public | function | Constructor. | Overrides DefaultPluginManager::__construct | |
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | ||
UseCacheBackendTrait::$cacheBackend | protected | property | Cache backend instance. | ||
UseCacheBackendTrait::$useCaches | protected | property | Flag whether caches should be used or skipped. | ||
UseCacheBackendTrait::cacheGet | protected | function | Fetches from the cache backend, respecting the use caches flag. | ||
UseCacheBackendTrait::cacheSet | protected | function | Stores data in the persistent cache, respecting the use caches flag. |