class ConfigEntityDependency
Same name in other branches
- 9 core/lib/Drupal/Core/Config/Entity/ConfigEntityDependency.php \Drupal\Core\Config\Entity\ConfigEntityDependency
- 8.9.x core/lib/Drupal/Core/Config/Entity/ConfigEntityDependency.php \Drupal\Core\Config\Entity\ConfigEntityDependency
- 10 core/lib/Drupal/Core/Config/Entity/ConfigEntityDependency.php \Drupal\Core\Config\Entity\ConfigEntityDependency
Provides a value object to discover configuration dependencies.
Hierarchy
- class \Drupal\Core\Config\Entity\ConfigEntityDependency
Expanded class hierarchy of ConfigEntityDependency
See also
\Drupal\Core\Config\Entity\ConfigDependencyManager
3 files declare their use of ConfigEntityDependency
- ConfigEntityDependencyTest.php in core/
tests/ Drupal/ Tests/ Core/ Config/ Entity/ ConfigEntityDependencyTest.php - DefaultConfigTest.php in core/
tests/ Drupal/ KernelTests/ Config/ DefaultConfigTest.php - EntityPermissionsFormTest.php in core/
modules/ user/ tests/ src/ Unit/ Form/ EntityPermissionsFormTest.php
File
-
core/
lib/ Drupal/ Core/ Config/ Entity/ ConfigEntityDependency.php, line 12
Namespace
Drupal\Core\Config\EntityView source
class ConfigEntityDependency {
/**
* The configuration entity's configuration object name.
*
* @var string
*/
protected $name;
/**
* The configuration entity's dependencies.
*
* @var array
*/
protected $dependencies = [];
/**
* Constructs the configuration entity dependency from the entity values.
*
* @param string $name
* The configuration entity's configuration object name.
* @param array $values
* (optional) The configuration entity's values.
*/
public function __construct($name, $values = []) {
$this->name = $name;
if (isset($values['dependencies']) && isset($values['dependencies']['enforced'])) {
// Merge the enforced dependencies into the list of dependencies.
$enforced_dependencies = $values['dependencies']['enforced'];
unset($values['dependencies']['enforced']);
$this->dependencies = NestedArray::mergeDeep($values['dependencies'], $enforced_dependencies);
}
elseif (isset($values['dependencies'])) {
$this->dependencies = $values['dependencies'];
}
}
/**
* Gets the configuration entity's dependencies of the supplied type.
*
* @param string $type
* The type of dependency to return. Either 'module', 'theme', 'config' or
* 'content'.
*
* @return array
* The list of dependencies of the supplied type.
*/
public function getDependencies($type) {
$dependencies = [];
if (isset($this->dependencies[$type])) {
$dependencies = $this->dependencies[$type];
}
// Add a dependency on the provider module (which defines this config
// entity type, such as 'node' in the case of 'node.type' configuration).
if ($type == 'module') {
$dependencies[] = substr($this->name, 0, strpos($this->name, '.'));
}
return $dependencies;
}
/**
* Determines if the entity is dependent on extensions or entities.
*
* @param string $type
* The type of dependency being checked. Either 'module', 'theme', 'config'
* or 'content'.
* @param string $name
* The specific name to check. If $type equals 'module' or 'theme' then it
* should be a module name or theme name. In the case of entity it should be
* the full configuration object name.
*
* @return bool
*/
public function hasDependency($type, $name) {
// Add a dependency on the provider module (which defines this config
// entity type, such as 'node' in the case of 'node.type' configuration).
if ($type == 'module' && str_starts_with($this->name, $name . '.')) {
return TRUE;
}
return isset($this->dependencies[$type]) && array_search($name, $this->dependencies[$type]) !== FALSE;
}
/**
* Gets the configuration entity's configuration dependency name.
*
* @see \Drupal\Core\Entity\EntityInterface::getConfigDependencyName()
*
* @return string
* The configuration dependency name for the entity.
*/
public function getConfigDependencyName() {
return $this->name;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ConfigEntityDependency::$dependencies | protected | property | The configuration entity's dependencies. |
ConfigEntityDependency::$name | protected | property | The configuration entity's configuration object name. |
ConfigEntityDependency::getConfigDependencyName | public | function | Gets the configuration entity's configuration dependency name. |
ConfigEntityDependency::getDependencies | public | function | Gets the configuration entity's dependencies of the supplied type. |
ConfigEntityDependency::hasDependency | public | function | Determines if the entity is dependent on extensions or entities. |
ConfigEntityDependency::__construct | public | function | Constructs the configuration entity dependency from the entity values. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.