acquia_search-3.0.1/src/EventSubscriber/AcquiaSubscriptionData/AcquiaSearchData.php

src/EventSubscriber/AcquiaSubscriptionData/AcquiaSearchData.php
<?php

namespace Drupal\acquia_search\EventSubscriber\AcquiaSubscriptionData;

use Drupal\acquia_connector\Event\AcquiaSubscriptionDataEvent;
use Drupal\Core\Extension\ModuleExtensionList;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Add metadata from Acquia Search to Acquia Connector's subscription.
 */
class AcquiaSearchData implements EventSubscriberInterface {

  /**
   * The module extension list.
   *
   * @var \Drupal\Core\Extension\ModuleExtensionList
   */
  protected $moduleExtensionList;

  /**
   * Add metadata constructor.
   *
   * @param \Drupal\Core\Extension\ModuleExtensionList $extension_list_module
   *   The module extension list.
   */
  public function __construct(ModuleExtensionList $extension_list_module) {
    $this->moduleExtensionList = $extension_list_module;
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    // Don't use AcquiaConnectorEvents::GET_SUBSCRIPTION, due to a race
    // condition caused by the update system when the class may not exist yet.
    $events['acquia_connector_get_subscription'][] = [
      'onGetSubscriptionData', 100,
    ];
    return $events;
  }

  /**
   * Gets a prebuilt Settings object from Drupal's settings file.
   *
   * @param \Drupal\acquia_connector\Event\AcquiaSubscriptionDataEvent $event
   *   The dispatched event.
   *
   * @see \Drupal\acquia_connector\Settings
   */
  public function onGetSubscriptionData(AcquiaSubscriptionDataEvent $event) {
    $config = $event->getConfig('acquia_search.settings');
    $subscription_data = $event->getData();

    $subscription_data['acquia_search'] = array_diff_key($config->get(), ['_core' => TRUE]);
    // When updating to v3, the api_host may not exist, manually put it in.
    if (!isset($subscription_data['acquia_search']['api_host'])) {
      $subscription_data['acquia_search']['api_host'] = 'https://api.sr-prod02.acquia.com';
    }

    $info = $this->moduleExtensionList->getExtensionInfo('acquia_search');
    $subscription_data['acquia_search']['module_version'] = (string) ($info['version'] ?? \Drupal::VERSION);

    // Add Acquia Search module version to subscription data.
    $event->setData($subscription_data);
  }

}

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

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