public ConfigManager::findConfigEntityDependentsAsEntities($type, array $names, ConfigDependencyManager $dependency_manager = NULL)
Finds config entities that are dependent on extensions or entities.
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.
\Drupal\Core\Config\Entity\ConfigEntityInterface[] An array of dependencies as configuration entities.
Overrides ConfigManagerInterface::findConfigEntityDependentsAsEntities
public function findConfigEntityDependentsAsEntities($type, array $names, ConfigDependencyManager $dependency_manager = NULL) { $dependencies = $this->findConfigEntityDependents($type, $names, $dependency_manager); $entities = array(); $definitions = $this->entityManager->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 = array(); foreach ($entities as $entity_type_id => $entities_to_load) { $storage = $this->entityManager->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; }
© 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!Config!ConfigManager.php/function/ConfigManager::findConfigEntityDependentsAsEntities/8.1.x