class ConfigSubscriber in Acquia Content Hub 8.2
Event subscriber to enqueue candidate Config Entity for publishing.
@package acquia_contenthub_publisher
Hierarchy
- class \Drupal\acquia_contenthub_publisher\EventSubscriber\Config\ConfigSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of ConfigSubscriber
1 string reference to 'ConfigSubscriber'
- acquia_contenthub_publisher.services.yml in modules/
acquia_contenthub_publisher/ acquia_contenthub_publisher.services.yml - modules/acquia_contenthub_publisher/acquia_contenthub_publisher.services.yml
1 service uses ConfigSubscriber
File
- modules/
acquia_contenthub_publisher/ src/ EventSubscriber/ Config/ ConfigSubscriber.php, line 16
Namespace
Drupal\acquia_contenthub_publisher\EventSubscriber\ConfigView source
class ConfigSubscriber implements EventSubscriberInterface {
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
if (!class_exists(LanguageConfigOverrideEvents::class)) {
return [];
}
$events[LanguageConfigOverrideEvents::SAVE_OVERRIDE] = 'onOverrideChange';
$events[LanguageConfigOverrideEvents::DELETE_OVERRIDE] = 'onOverrideChange';
return $events;
}
/**
* Enqueues candidate entity when a configuration override changed.
*
* Enqueues candidate configuration entity for publishing on language override
* change - either on save or delete.
*
* @param \Drupal\language\Config\LanguageConfigOverrideCrudEvent $event
* The language configuration override event.
*
* @throws \Exception
*/
public function onOverrideChange(LanguageConfigOverrideCrudEvent $event) {
$config_name = $event
->getLanguageConfigOverride()
->getName();
/** @var \Drupal\Core\Config\Entity\ConfigEntityType $entity_type_definition */
foreach (\Drupal::entityTypeManager()
->getDefinitions() as $entity_type => $entity_type_definition) {
if (!$entity_type_definition instanceof ConfigEntityType) {
continue;
}
$config_prefix = $entity_type_definition
->getConfigPrefix();
if (0 === strpos($config_name, $config_prefix)) {
$id = ConfigEntityStorage::getIDFromConfigName($config_name, $config_prefix);
$entity = \Drupal::entityTypeManager()
->getStorage($entity_type)
->load($id);
if (!$entity) {
return;
}
_acquia_contenthub_publisher_enqueue_entity($entity, 'update');
return;
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigSubscriber:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | |
ConfigSubscriber:: |
public | function | Enqueues candidate entity when a configuration override changed. |