You are here

public function FieldConfigBase::calculateDependencies in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Field/FieldConfigBase.php \Drupal\Core\Field\FieldConfigBase::calculateDependencies()
  2. 9 core/lib/Drupal/Core/Field/FieldConfigBase.php \Drupal\Core\Field\FieldConfigBase::calculateDependencies()

Calculates dependencies and stores them in the dependency property.

Return value

$this

Overrides ConfigEntityBase::calculateDependencies

See also

\Drupal\Core\Config\Entity\ConfigDependencyManager

File

core/lib/Drupal/Core/Field/FieldConfigBase.php, line 232

Class

FieldConfigBase
Base class for configurable field definitions.

Namespace

Drupal\Core\Field

Code

public function calculateDependencies() {
  parent::calculateDependencies();

  // Add dependencies from the field type plugin. We can not use
  // self::calculatePluginDependencies() because instantiation of a field item
  // plugin requires a parent entity.

  /** @var \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager */
  $field_type_manager = \Drupal::service('plugin.manager.field.field_type');
  $definition = $field_type_manager
    ->getDefinition($this
    ->getType());
  $this
    ->addDependency('module', $definition['provider']);

  // Plugins can declare additional dependencies in their definition.
  if (isset($definition['config_dependencies'])) {
    $this
      ->addDependencies($definition['config_dependencies']);
  }

  // Let the field type plugin specify its own dependencies.
  // @see \Drupal\Core\Field\FieldItemInterface::calculateDependencies()
  $this
    ->addDependencies($definition['class']::calculateDependencies($this));

  // Create dependency on the bundle.
  $bundle_config_dependency = $this
    ->entityTypeManager()
    ->getDefinition($this->entity_type)
    ->getBundleConfigDependency($this->bundle);
  $this
    ->addDependency($bundle_config_dependency['type'], $bundle_config_dependency['name']);
  return $this;
}