Implements hook_system_info_alter().
Manipulate module dependencies to test dependency chains.
function module_test_system_info_alter(&$info, $file, $type) {
if (Drupal::state()
->get('module_test.dependency') == 'missing dependency') {
if ($file->name == 'forum') {
// Make forum module depend on ban.
$info['dependencies'][] = 'ban';
}
elseif ($file->name == 'ban') {
// Make ban depend on a made-up module.
$info['dependencies'][] = 'foo';
}
}
elseif (Drupal::state()
->get('module_test.dependency') == 'dependency') {
if ($file->name == 'forum') {
// Make the forum module depend on ban.
$info['dependencies'][] = 'ban';
}
elseif ($file->name == 'ban') {
// Make ban depend on php module.
$info['dependencies'][] = 'php';
}
}
elseif (Drupal::state()
->get('module_test.dependency') == 'version dependency') {
if ($file->name == 'forum') {
// Make the forum module depend on ban.
$info['dependencies'][] = 'ban';
}
elseif ($file->name == 'ban') {
// Make ban depend on a specific version of php module.
$info['dependencies'][] = 'php (1.x)';
}
elseif ($file->name == 'php') {
// Set php module to a version compatible with the above.
$info['version'] = '8.x-1.0';
}
}
if ($file->name == 'seven' && $type == 'theme') {
$info['regions']['test_region'] = t('Test region');
}
}