trait FieldAPIHandlerTrait in Drupal 10
Same name and namespace in other branches
- 8 core/modules/views/src/FieldAPIHandlerTrait.php \Drupal\views\FieldAPIHandlerTrait
- 9 core/modules/views/src/FieldAPIHandlerTrait.php \Drupal\views\FieldAPIHandlerTrait
A trait containing helper methods for field definitions.
Hierarchy
- trait \Drupal\views\FieldAPIHandlerTrait
6 files declare their use of FieldAPIHandlerTrait
- Date.php in core/
modules/ datetime/ src/ Plugin/ views/ filter/ Date.php - Date.php in core/
modules/ datetime/ src/ Plugin/ views/ sort/ Date.php - Date.php in core/
modules/ datetime/ src/ Plugin/ views/ argument/ Date.php - ListField.php in core/
modules/ options/ src/ Plugin/ views/ filter/ ListField.php - NumberListField.php in core/
modules/ options/ src/ Plugin/ views/ argument/ NumberListField.php
File
- core/
modules/ views/ src/ FieldAPIHandlerTrait.php, line 10
Namespace
Drupal\viewsView source
trait FieldAPIHandlerTrait {
/**
* The field definition.
*
* @var \Drupal\Core\Field\FieldDefinitionInterface
*/
protected $fieldDefinition;
/**
* The field storage definition.
*
* @var \Drupal\field\FieldStorageConfigInterface
*/
protected $fieldStorageDefinition;
/**
* The entity field manager.
*
* @var \Drupal\Core\Entity\EntityFieldManagerInterface
*/
protected $entityFieldManager;
/**
* Gets the field definition.
*
* A View works on an entity type across bundles, and thus only has access to
* field storage definitions. In order to be able to use widgets and
* formatters, we create a generic field definition out of that storage
* definition.
*
* @see BaseFieldDefinition::createFromFieldStorageDefinition()
*
* @return \Drupal\Core\Field\FieldDefinitionInterface
* The field definition used by this handler.
*/
protected function getFieldDefinition() {
if (!$this->fieldDefinition) {
$field_storage_config = $this
->getFieldStorageDefinition();
$this->fieldDefinition = BaseFieldDefinition::createFromFieldStorageDefinition($field_storage_config);
}
return $this->fieldDefinition;
}
/**
* Gets the field storage configuration.
*
* @return \Drupal\field\FieldStorageConfigInterface
* The field storage definition used by this handler
*/
protected function getFieldStorageDefinition() {
if (!$this->fieldStorageDefinition) {
$field_storage_definitions = $this
->getEntityFieldManager()
->getFieldStorageDefinitions($this->definition['entity_type']);
$this->fieldStorageDefinition = $field_storage_definitions[$this->definition['field_name']];
}
return $this->fieldStorageDefinition;
}
/**
* Returns the entity field manager.
*
* @return \Drupal\Core\Entity\EntityFieldManagerInterface
* The entity field manager.
*/
protected function getEntityFieldManager() {
if (!isset($this->entityFieldManager)) {
$this->entityFieldManager = \Drupal::service('entity_field.manager');
}
return $this->entityFieldManager;
}
}