You are here

function acquia_search_get_core_service in Acquia Connector 8

Instantiates the PreferredSearchCoreService class.

The PreferredSearchCoreService class, helps to determines which search core should be used and whether it is available within the subscription.

Return value

\Drupal\acquia_search\PreferredSearchCoreService Preferred Search Core Service.

5 calls to acquia_search_get_core_service()
acquia_search_get_read_only_mode_warning in acquia_search/acquia_search.module
Returns formatted message about read-only mode.
acquia_search_search_api_server_load in acquia_search/acquia_search.module
Implements hook_search_api_server_load().
acquia_search_should_set_read_only_mode in acquia_search/acquia_search.module
Determine if we should enforce read-only mode.
SearchApiSolrAcquiaConnector::defaultConfiguration in acquia_search/src/Plugin/SolrConnector/SearchApiSolrAcquiaConnector.php
SearchSubscriber::getSearchV3IndexKeys in acquia_search/src/EventSubscriber/SearchSubscriber.php
Fetches the search v3 index keys.

File

acquia_search/acquia_search.module, line 550
Integration between Acquia Drupal and Acquia's hosted solr search service.

Code

function acquia_search_get_core_service() {
  static $core_service;
  if (isset($core_service)) {
    return $core_service;
  }
  $storage = new Storage();
  $acquia_identifier = $storage
    ->getIdentifier();
  $ah_env = isset($_ENV['AH_SITE_ENVIRONMENT']) ? $_ENV['AH_SITE_ENVIRONMENT'] : '';
  $ah_site_name = isset($_ENV['AH_SITE_NAME']) ? $_ENV['AH_SITE_NAME'] : '';
  $ah_site_group = isset($_ENV['AH_SITE_GROUP']) ? $_ENV['AH_SITE_GROUP'] : '';
  $conf_path = \Drupal::service('site.path');
  $sites_foldername = substr($conf_path, strrpos($conf_path, '/') + 1);
  $ah_db_name = '';
  if ($ah_env && $ah_site_name && $ah_site_group) {
    $options = Database::getConnection()
      ->getConnectionOptions();
    $ah_db_name = $options['database'];
  }
  $subscription = \Drupal::state()
    ->get('acquia_subscription_data');
  $available_cores = [];
  if (!empty($subscription['heartbeat_data']['search_cores'])) {
    $available_cores = $subscription['heartbeat_data']['search_cores'];
  }
  $search_v3_cores = acquia_search_get_v3_cores($acquia_identifier);
  $available_cores = array_merge($available_cores, $search_v3_cores);
  $core_service = new PreferredSearchCoreService($acquia_identifier, $ah_env, $sites_foldername, $ah_db_name, $available_cores);
  return $core_service;
}