function install_profile_modules
Same name in other branches
- 7.x includes/install.core.inc \install_profile_modules()
- 9 core/includes/install.core.inc \install_profile_modules()
- 8.9.x core/includes/install.core.inc \install_profile_modules()
- 10 core/includes/install.core.inc \install_profile_modules()
Installs required modules via a batch process.
Parameters
$install_state: An array of information about the current installation state.
Return value
array The batch definition.
1 string reference to 'install_profile_modules'
- install_tasks in core/
includes/ install.core.inc - Returns a list of all tasks the installer currently knows about.
File
-
core/
includes/ install.core.inc, line 1578
Code
function install_profile_modules(&$install_state) {
// We need to manually trigger the installation of core-provided entity types,
// as those will not be handled by the module installer.
install_core_entity_type_definitions();
$modules = $install_state['profile_info']['install'];
$files = \Drupal::service('extension.list.module')->getList();
// Always install required modules first. Respect the dependencies between
// the modules.
$required = [];
$non_required = [];
// Add modules that other modules depend on.
foreach ($modules as $module) {
if ($files[$module]->requires) {
$modules = array_merge($modules, array_keys($files[$module]->requires));
}
}
// The System module has already been installed by install_base_system().
$modules = array_diff(array_unique($modules), [
'system',
]);
foreach ($modules as $module) {
if (!empty($files[$module]->info['required'])) {
$required[$module] = $files[$module]->sort;
}
else {
$non_required[$module] = $files[$module]->sort;
}
}
arsort($required);
arsort($non_required);
$batch_builder = new BatchBuilder();
foreach ($required + $non_required as $module => $weight) {
$batch_builder->addOperation('_install_module_batch', [
$module,
$files[$module]->info['name'],
]);
}
$batch_builder->setTitle(t('Installing @drupal', [
'@drupal' => drupal_install_profile_distribution_name(),
]))
->setErrorMessage(t('The installation has encountered an error.'));
return $batch_builder->toArray();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.