install_profile_modules(&$install_state)
Installs required modules via a batch process.
Parameters
$install_state: An array of information about the current installation state.
Return value
The batch definition.
File
- core/includes/install.core.inc, line 1472
- API functions for installing Drupal.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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 = \Drupal::state()->get( 'install_profile_modules' ) ? : array (); $files = system_rebuild_module_data(); \Drupal::state()-> delete ( 'install_profile_modules' ); // Always install required modules first. Respect the dependencies between // the modules. $required = array (); $non_required = array (); // Add modules that other modules depend on. foreach ( $modules as $module ) { if ( $files [ $module ]->requires) { $modules = array_merge ( $modules , array_keys ( $files [ $module ]->requires)); } } $modules = array_unique ( $modules ); 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 ); $operations = array (); foreach ( $required + $non_required as $module => $weight ) { $operations [] = array ( '_install_module_batch' , array ( $module , $files [ $module ]->info[ 'name' ])); } $batch = array ( 'operations' => $operations , 'title' => t( 'Installing @drupal' , array ( '@drupal' => drupal_install_profile_distribution_name())), 'error_message' => t( 'The installation has encountered an error.' ), ); return $batch ; } |
Please login to continue.