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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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(); $sorts = $this ->prepareMultisort( $graph , [ 'weight' , 'name' ]); array_multisort ( $sorts [ 'weight' ], SORT_DESC, SORT_NUMERIC, $sorts [ 'name' ], SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE, $graph ); return array_replace( array_intersect_key ( $graph , $dependencies ), $dependencies ); } |
Please login to continue.