class EntityReferenceReverseDeriver in GraphQL 8.3
Hierarchy
- class \Drupal\Component\Plugin\Derivative\DeriverBase implements DeriverInterface
- class \Drupal\graphql_core\Plugin\Deriver\Fields\EntityReferenceReverseDeriver implements ContainerDeriverInterface uses StringTranslationTrait
Expanded class hierarchy of EntityReferenceReverseDeriver
File
- modules/
graphql_core/ src/ Plugin/ Deriver/ Fields/ EntityReferenceReverseDeriver.php, line 15
Namespace
Drupal\graphql_core\Plugin\Deriver\FieldsView source
class EntityReferenceReverseDeriver extends DeriverBase implements ContainerDeriverInterface {
use StringTranslationTrait;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The entity field manager.
*
* @var \Drupal\Core\Entity\EntityFieldManagerInterface
*/
protected $entityFieldManager;
/**
* The typed data manager service.
*
* @var \Drupal\Core\TypedData\TypedDataManagerInterface
*/
protected $typedDataManager;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, $basePluginId) {
return new static($container
->get('entity_type.manager'), $container
->get('entity_field.manager'), $container
->get('typed_data_manager'));
}
/**
* RawValueFieldItemDeriver constructor.
*
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
* The entity type manager.
* @param \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager
* The entity field manager.
* @param \Drupal\Core\TypedData\TypedDataManagerInterface $typedDataManager
* The typed data manager service.
*/
public function __construct(EntityTypeManagerInterface $entityTypeManager, EntityFieldManagerInterface $entityFieldManager, TypedDataManagerInterface $typedDataManager) {
$this->entityTypeManager = $entityTypeManager;
$this->entityFieldManager = $entityFieldManager;
$this->typedDataManager = $typedDataManager;
}
/**
* {@inheritdoc}
*/
public function getDerivativeDefinitions($basePluginDefinition) {
foreach ($this->entityTypeManager
->getDefinitions() as $entityTypeId => $entityType) {
$interfaces = class_implements($entityType
->getClass());
if (!array_key_exists(FieldableEntityInterface::class, $interfaces)) {
continue;
}
foreach ($this->entityFieldManager
->getFieldStorageDefinitions($entityTypeId) as $fieldDefinition) {
if ($fieldDefinition
->getType() !== 'entity_reference' || !($targetTypeId = $fieldDefinition
->getSetting('target_type'))) {
continue;
}
$tags = array_merge($fieldDefinition
->getCacheTags(), [
'entity_field_info',
]);
$contexts = $fieldDefinition
->getCacheContexts();
$maxAge = $fieldDefinition
->getCacheMaxAge();
$fieldName = $fieldDefinition
->getName();
$derivative = [
'parents' => [
StringHelper::camelCase($targetTypeId),
],
'name' => StringHelper::propCase('reverse', $fieldName, $entityTypeId),
'description' => $this
->t('Reverse reference: @description', [
'@description' => $fieldDefinition
->getDescription(),
]),
'field' => $fieldName,
'entity_type' => $entityTypeId,
'schema_cache_tags' => $tags,
'schema_cache_contexts' => $contexts,
'schema_cache_max_age' => $maxAge,
] + $basePluginDefinition;
/** @var \Drupal\Core\Entity\TypedData\EntityDataDefinitionInterface $definition */
$this->derivatives["{$entityTypeId}-{$fieldName}"] = $derivative;
}
}
return $this->derivatives;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DeriverBase:: |
protected | property | List of derivative definitions. | 1 |
DeriverBase:: |
public | function |
Gets the definition of a derivative plugin. Overrides DeriverInterface:: |
|
EntityReferenceReverseDeriver:: |
protected | property | The entity field manager. | |
EntityReferenceReverseDeriver:: |
protected | property | The entity type manager. | |
EntityReferenceReverseDeriver:: |
protected | property | The typed data manager service. | |
EntityReferenceReverseDeriver:: |
public static | function |
Creates a new class instance. Overrides ContainerDeriverInterface:: |
|
EntityReferenceReverseDeriver:: |
public | function |
Gets the definition of all derivatives of a base plugin. Overrides DeriverBase:: |
|
EntityReferenceReverseDeriver:: |
public | function | RawValueFieldItemDeriver constructor. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |