You are here

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
acquia_contenthub_publisher.language_override_config_subscriber in modules/acquia_contenthub_publisher/acquia_contenthub_publisher.services.yml
Drupal\acquia_contenthub_publisher\EventSubscriber\Config\ConfigSubscriber

File

modules/acquia_contenthub_publisher/src/EventSubscriber/Config/ConfigSubscriber.php, line 16

Namespace

Drupal\acquia_contenthub_publisher\EventSubscriber\Config
View 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

Namesort descending Modifiers Type Description Overrides
ConfigSubscriber::getSubscribedEvents public static function Returns an array of event names this subscriber wants to listen to.
ConfigSubscriber::onOverrideChange public function Enqueues candidate entity when a configuration override changed.