You are here

public static function Runtime::getPreferredSearchCoreService in Acquia Search 3.x

Instantiates the PreferredSearchCore class.

Helps to determines which search core should be used and whether it is available within the subscription.

Return value

\Drupal\acquia_search\PreferredSearchCore Preferred search core service.

2 calls to Runtime::getPreferredSearchCoreService()
SearchApiSolrAcquiaConnector::defaultConfiguration in src/Plugin/SolrConnector/SearchApiSolrAcquiaConnector.php
Gets default configuration for this plugin.
SearchSubscriber::getSearchIndexKeys in src/EventSubscriber/SearchSubscriber.php
Fetches the Acquia Search v3 index keys.

File

src/Helper/Runtime.php, line 66

Class

Runtime
Class Runtime.

Namespace

Drupal\acquia_search\Helper

Code

public static function getPreferredSearchCoreService() : PreferredSearchCore {
  if (self::$preferredSearchCoreService) {
    return self::$preferredSearchCoreService;
  }
  $ah_env = $_ENV['AH_SITE_ENVIRONMENT'] ?? '';
  $ah_site_name = $_ENV['AH_SITE_NAME'] ?? '';
  $ah_site_group = $_ENV['AH_SITE_GROUP'] ?? '';
  $conf_path = \Drupal::service('site.path');
  $sites_folder_name = substr($conf_path, strrpos($conf_path, '/') + 1);
  $ah_db_role = '';
  if ($ah_env && $ah_site_name && $ah_site_group) {
    $options = Database::getConnection()
      ->getConnectionOptions();
    $connection_info = Database::getAllConnectionInfo();
    $ah_db_role = Runtime::getAhDatabaseRole($options, $connection_info);
  }
  if (!($available_cores = Runtime::getAcquiaSearchApiClient(Storage::getUuid())
    ->getSearchIndexes(Storage::getIdentifier()))) {
    $available_cores = [];
  }
  return new PreferredSearchCore(Storage::getIdentifier(), $ah_env, $sites_folder_name, $ah_db_role, $available_cores);
}