You are here

public static function EntityReferenceItem::calculateStorageDependencies in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem::calculateStorageDependencies()
  2. 9 core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem::calculateStorageDependencies()

Calculates dependencies for field items on the storage level.

Dependencies are saved in the field storage configuration entity and are used to determine configuration synchronization order. For example, if the field type storage depends on a particular entity type, this method should return an array of dependencies listing the module that provides the entity type.

Dependencies returned from this method are stored in field storage configuration and are always considered hard dependencies. If the dependency is removed the field storage configuration must be deleted.

Parameters

\Drupal\Core\Field\FieldStorageDefinitionInterface $field_storage_definition: The field storage definition.

Return value

array An array of dependencies grouped by type (config, content, module, theme). For example:

[
  'config' => [
    'user.role.anonymous',
    'user.role.authenticated',
  ],
  'content' => [
    'node:article:f0a189e6-55fb-47fb-8005-5bef81c44d6d',
  ],
  'module' => [
    'node',
    'user',
  ],
  'theme' => [
    'seven',
  ],
];

Overrides FieldItemBase::calculateStorageDependencies

See also

\Drupal\Core\Config\Entity\ConfigDependencyManager

\Drupal\Core\Config\Entity\ConfigEntityInterface::getConfigDependencyName()

File

core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php, line 523

Class

EntityReferenceItem
Defines the 'entity_reference' entity field type.

Namespace

Drupal\Core\Field\Plugin\Field\FieldType

Code

public static function calculateStorageDependencies(FieldStorageDefinitionInterface $field_definition) {
  $dependencies = parent::calculateStorageDependencies($field_definition);
  $target_entity_type = \Drupal::entityTypeManager()
    ->getDefinition($field_definition
    ->getSetting('target_type'));
  $dependencies['module'][] = $target_entity_type
    ->getProvider();
  return $dependencies;
}