function ConfigTest::onDependencyRemoval
Same name in other branches
- 8.9.x core/modules/config/tests/config_test/src/Entity/ConfigTest.php \Drupal\config_test\Entity\ConfigTest::onDependencyRemoval()
- 10 core/modules/config/tests/config_test/src/Entity/ConfigTest.php \Drupal\config_test\Entity\ConfigTest::onDependencyRemoval()
- 11.x core/modules/config/tests/config_test/src/Entity/ConfigTest.php \Drupal\config_test\Entity\ConfigTest::onDependencyRemoval()
Overrides ConfigEntityBase::onDependencyRemoval
File
-
core/
modules/ config/ tests/ config_test/ src/ Entity/ ConfigTest.php, line 139
Class
- ConfigTest
- Defines the ConfigTest configuration entity.
Namespace
Drupal\config_test\EntityCode
public function onDependencyRemoval(array $dependencies) {
// Record which entities have this method called on and what dependencies
// are passed.
$called = \Drupal::state()->get('config_test.on_dependency_removal_called', []);
$called[$this->id()] = $dependencies;
$called[$this->id()]['config'] = array_keys($called[$this->id()]['config']);
$called[$this->id()]['content'] = array_keys($called[$this->id()]['content']);
\Drupal::state()->set('config_test.on_dependency_removal_called', $called);
$changed = parent::onDependencyRemoval($dependencies);
if (!isset($this->dependencies['enforced']['config'])) {
return $changed;
}
$fix_deps = \Drupal::state()->get('config_test.fix_dependencies', []);
foreach ($dependencies['config'] as $entity) {
if (in_array($entity->getConfigDependencyName(), $fix_deps)) {
$key = array_search($entity->getConfigDependencyName(), $this->dependencies['enforced']['config']);
if ($key !== FALSE) {
$changed = TRUE;
unset($this->dependencies['enforced']['config'][$key]);
}
}
}
// If any of the dependencies removed still exists, return FALSE.
if (array_intersect_key(array_flip($this->dependencies['enforced']['config']), $dependencies['config'])) {
return FALSE;
}
return $changed;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.