You are here

function search_api_acquia_get_core_service in Acquia Search for Search API 7.2

Helper function that instantiates and caches the preferred search core service.

1 call to search_api_acquia_get_core_service()
search_api_acquia_add_solr_overrides in ./search_api_acquia.module
Overrides search_api_solr configs to talk to the proper Acquia search core.

File

./search_api_acquia.module, line 35
Provides integration between your Drupal site and Acquia's hosted search service via the Search API Solr module.

Code

function search_api_acquia_get_core_service($acquia_search_api_version = SearchApiAcquiaSearchService::ACQUIA_SEARCH_API_V2) {
  static $core_services;
  if (isset($core_services[$acquia_search_api_version])) {
    return $core_services[$acquia_search_api_version];
  }
  if ($acquia_search_api_version === SearchApiAcquiaSearchService::ACQUIA_SEARCH_API_V3) {
    $core_services[$acquia_search_api_version] = SearchApiAcquiaApi::getFromSettings()
      ->getPreferredCoreService();
    return $core_services[$acquia_search_api_version];
  }
  module_load_include('php', 'search_api_acquia', 'src/SAPIPreferredSearchCoreService');
  global $conf;
  $acquia_identifier = acquia_agent_settings('acquia_identifier');
  $ah_env = isset($_ENV['AH_SITE_ENVIRONMENT']) ? $_ENV['AH_SITE_ENVIRONMENT'] : '';
  $sites_foldername = substr(conf_path(), strrpos(conf_path(), '/') + 1);
  $ah_db_name = isset($conf['acquia_hosting_site_info']['db']['name']) ? $conf['acquia_hosting_site_info']['db']['name'] : '';
  $subscription = acquia_agent_settings('acquia_subscription_data');
  $available_cores = search_api_acquia_available_cores($subscription);
  $core_services[$acquia_search_api_version] = new SAPIPreferredSearchCoreService($acquia_identifier, $ah_env, $sites_foldername, $ah_db_name, $available_cores);
  return $core_services[$acquia_search_api_version];
}