You are here

public static function ConfigurationManagement::discoverRequiredModules in Configuration Management 7.2

Returns a list of modules required to import the configurations indicated in $list.

Parameters

array $modules: The list of modules that are listed in the tracked.inc file.

4 calls to ConfigurationManagement::discoverRequiredModules()
ConfigurationManagement::importToActiveStoreFromTar in lib/Drupal/configuration/Config/ConfigurationManagement.php
Import configurations from a Tar file.
configuration_import_directory in ./configuration.module
Import all configuration files within a directory.
configuration_sync_configurations_submit in ui/configuration_ui.admin.inc
_configuration_sync in ./configuration.drush.inc

File

lib/Drupal/configuration/Config/ConfigurationManagement.php, line 124
Definition of Drupal\configuration\Config\ConfigurationManagement.

Class

ConfigurationManagement

Namespace

Drupal\configuration\Config

Code

public static function discoverRequiredModules($modules) {
  $settings = new ConfigIteratorSettings(array(
    'info' => array(
      'modules' => array(),
      'modules_missing' => array(),
      'modules_to_install' => array(),
    ),
  ));
  $stack = array();
  foreach ($modules as $module) {
    Configuration::getDependentModules($module, $stack);
  }
  $missing = array();
  $to_install = array();
  foreach ($stack as $module_name => $status) {
    if ($status == Configuration::moduleMissing) {
      $missing[] = $module_name;
    }
    elseif ($status == Configuration::moduleToInstall) {
      $to_install[] = $module_name;
    }
  }
  $settings
    ->setInfo('modules_to_install', array_filter(array_unique($to_install)));
  $settings
    ->setInfo('modules_missing', array_filter(array_unique($missing)));
  return $settings;
}