public function ConfigDependencyManager::getDependentEntities

public ConfigDependencyManager::getDependentEntities($type, $name)

Gets dependencies.

Parameters

string $type: The type of dependency being checked. Either 'module', 'theme', 'config' or 'content'.

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 value

\Drupal\Core\Config\Entity\ConfigEntityDependency[] An array of config entity dependency objects that are dependent.

File

core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php, line 152

Class

ConfigDependencyManager
Provides a class to discover configuration entity dependencies.

Namespace

Drupal\Core\Config\Entity

Code

public function getDependentEntities($type, $name) {
  $dependent_entities = array();

  $entities_to_check = array();
  if ($type == 'config') {
    $entities_to_check[] = $name;
  }
  else {
    if ($type == 'module' || $type == 'theme' || $type == 'content') {
      $dependent_entities = array_filter($this->data, function(ConfigEntityDependency $entity) use ($type, $name) {
        return $entity->hasDependency($type, $name);
      });
    }
    // If checking content, module, or theme dependencies, discover which
    // entities are dependent on the entities that have a direct dependency.
    foreach ($dependent_entities as $entity) {
      $entities_to_check[] = $entity->getConfigDependencyName();
    }
  }
  $dependencies = array_merge($this->createGraphConfigEntityDependencies($entities_to_check), $dependent_entities);
  // Sort dependencies in the reverse order of the graph. So the least
  // dependent is at the top. For example, this ensures that fields are
  // always after field storages. This is because field storages need to be
  // created before a field.
  $graph = $this->getGraph();
  uasort($graph, array($this, 'sortGraph'));
  return array_replace(array_intersect_key($graph, $dependencies), $dependencies);
}

© 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!Entity!ConfigDependencyManager.php/function/ConfigDependencyManager::getDependentEntities/8.1.x