function _module_build_dependencies in Drupal 7
Same name and namespace in other branches
- 6 includes/module.inc \_module_build_dependencies()
Determines which modules require and are required by each module.
Parameters
$files: The array of filesystem objects used to rebuild the cache.
Return value
The same array with the new keys for each module:
- requires: An array with the keys being the modules that this module requires.
- required_by: An array with the keys being the modules that will not work without this module.
1 call to _module_build_dependencies()
- system_rebuild_module_data in modules/
system/ system.module - Rebuild, save, and return data about all currently available modules.
File
- includes/
module.inc, line 249 - API for loading and interacting with Drupal modules.
Code
function _module_build_dependencies($files) {
require_once DRUPAL_ROOT . '/includes/graph.inc';
foreach ($files as $filename => $file) {
$graph[$file->name]['edges'] = array();
if (isset($file->info['dependencies']) && is_array($file->info['dependencies'])) {
foreach ($file->info['dependencies'] as $dependency) {
$dependency_data = drupal_parse_dependency($dependency);
$graph[$file->name]['edges'][$dependency_data['name']] = $dependency_data;
}
}
}
drupal_depth_first_search($graph);
foreach ($graph as $module => $data) {
$files[$module]->required_by = isset($data['reverse_paths']) ? $data['reverse_paths'] : array();
$files[$module]->requires = isset($data['paths']) ? $data['paths'] : array();
$files[$module]->sort = $data['weight'];
}
return $files;
}