public function SolrFieldManager::getFieldDefinitions in Search API Solr 8.2
Same name and namespace in other branches
- 8.3 src/SolrFieldManager.php \Drupal\search_api_solr\SolrFieldManager::getFieldDefinitions()
- 4.x src/SolrFieldManager.php \Drupal\search_api_solr\SolrFieldManager::getFieldDefinitions()
Gets the field definitions for a Solr server.
Parameters
string $server_id: The ID of the Server from which we are retrieving field information.
Return value
\Drupal\search_api_solr\TypedData\SolrFieldDefinitionInterface[] The array of field definitions for the server, keyed by field name.
Overrides SolrFieldManagerInterface::getFieldDefinitions
File
- src/
SolrFieldManager.php, line 58
Class
- SolrFieldManager
- Manages the discovery of Solr fields.
Namespace
Drupal\search_api_solrCode
public function getFieldDefinitions($server_id) {
if (!isset($this->fieldDefinitions[$server_id])) {
// Not prepared, try to load from cache.
$cid = 'solr_field_definitions:' . $server_id;
if ($cache = $this
->cacheGet($cid)) {
$field_definitions = $cache->data;
}
else {
/** @var \Drupal\search_api\ServerInterface|null $server */
$server = $this->serverStorage
->load($server_id);
// Load the server entity.
if ($server === NULL) {
throw new \InvalidArgumentException('The Search API server could not be loaded.');
}
// Don't attempt to connect to server if config is disabled. Cache will
// clear itself when server config is enabled again.
$field_definitions = $server
->status() ? $this
->buildFieldDefinitions($server) : [];
$this
->cacheSet($cid, $field_definitions, Cache::PERMANENT, $server
->getCacheTagsToInvalidate());
}
$this->fieldDefinitions[$server_id] = $field_definitions;
}
return $this->fieldDefinitions[$server_id];
}