public function FieldConfigBase::calculateDependencies

public 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 221

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 $field_type_manager \Drupal\Core\Field\FieldTypePluginManagerInterface */
  $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->entityManager()->getDefinition($this->entity_type)->getBundleConfigDependency($this->bundle);
  $this->addDependency($bundle_config_dependency['type'], $bundle_config_dependency['name']);

  return $this;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Field!FieldConfigBase.php/function/FieldConfigBase::calculateDependencies/8.1.x