public function ConfigManager::findConfigEntityDependenciesAsEntities in Drupal 9
Finds config entities that are dependent on extensions or entities.
Parameters
string $type: The type of dependency being checked. Either 'module', 'theme', 'config' or 'content'.
array $names: The specific names to check. If $type equals 'module' or 'theme' then it should be a list of module names or theme names. In the case of 'config' or 'content' it should be a list of configuration dependency names.
Return value
\Drupal\Core\Config\Entity\ConfigEntityInterface[] An array of dependencies as configuration entities.
Overrides ConfigManagerInterface::findConfigEntityDependenciesAsEntities
2 calls to ConfigManager::findConfigEntityDependenciesAsEntities()
- ConfigManager::findConfigEntityDependentsAsEntities in core/
lib/ Drupal/ Core/ Config/ ConfigManager.php - Deprecated method to find config entity dependencies as entities.
- ConfigManager::getConfigEntitiesToChangeOnDependencyRemoval in core/
lib/ Drupal/ Core/ Config/ ConfigManager.php - Lists which config entities to update and delete on removal of a dependency.
File
- core/
lib/ Drupal/ Core/ Config/ ConfigManager.php, line 275
Class
- ConfigManager
- The ConfigManager provides helper functions for the configuration system.
Namespace
Drupal\Core\ConfigCode
public function findConfigEntityDependenciesAsEntities($type, array $names, ConfigDependencyManager $dependency_manager = NULL) {
$dependencies = $this
->findConfigEntityDependencies($type, $names, $dependency_manager);
$entities = [];
$definitions = $this->entityTypeManager
->getDefinitions();
foreach ($dependencies as $config_name => $dependency) {
// Group by entity type to efficient load entities using
// \Drupal\Core\Entity\EntityStorageInterface::loadMultiple().
$entity_type_id = $this
->getEntityTypeIdByName($config_name);
// It is possible that a non-configuration entity will be returned if a
// simple configuration object has a UUID key. This would occur if the
// dependents of the system module are calculated since system.site has
// a UUID key.
if ($entity_type_id) {
$id = substr($config_name, strlen($definitions[$entity_type_id]
->getConfigPrefix()) + 1);
$entities[$entity_type_id][] = $id;
}
}
$entities_to_return = [];
foreach ($entities as $entity_type_id => $entities_to_load) {
$storage = $this->entityTypeManager
->getStorage($entity_type_id);
// Remove the keys since there are potential ID clashes from different
// configuration entity types.
$entities_to_return = array_merge($entities_to_return, array_values($storage
->loadMultiple($entities_to_load)));
}
return $entities_to_return;
}