function module_test_system_info_alter

Implements hook_system_info_alter().

Manipulate module dependencies to test dependency chains.

File

drupal/core/modules/system/tests/modules/module_test/module_test.module, line 17

Code

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');
  }
}