acquia_connector-8.x-1.22/src/EventSubscriber/ConfigSubscriber.php

src/EventSubscriber/ConfigSubscriber.php
<?php

declare(strict_types=1);

namespace Drupal\acquia_connector\EventSubscriber;

use Drupal\acquia_connector\Subscription;
use Drupal\Core\Config\ConfigCrudEvent;
use Drupal\Core\Config\ConfigEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Event subscriber to refresh subscription data when Connector settings change.
 */
final class ConfigSubscriber implements EventSubscriberInterface {

  /**
   * The subscription.
   *
   * @var \Drupal\acquia_connector\Subscription
   */
  private $subscription;

  /**
   * Constructs a new ConfigSubscriber object.
   *
   * @param \Drupal\acquia_connector\Subscription $subscription
   *   The subscription.
   */
  public function __construct(Subscription $subscription) {
    $this->subscription = $subscription;
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    return [
      ConfigEvents::SAVE => 'onSave',
    ];
  }

  /**
   * Config save event handler.
   *
   * @param \Drupal\Core\Config\ConfigCrudEvent $event
   *   The event.
   */
  public function onSave(ConfigCrudEvent $event) {
    if ($event->getConfig()->getName() === 'acquia_connector.settings'
      && $event->isChanged('third_party_settings')
    ) {
      $this->subscription->getSubscription(TRUE);
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc