You are here

function drupal_install_system in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/includes/install.inc \drupal_install_system()

Installs the system module.

Separated from the installation of other modules so core system functions can be made available while other modules are installed.

Parameters

array $install_state: An array of information about the current installation state. This is used to set the default language.

1 call to drupal_install_system()
install_base_system in core/includes/install.core.inc
Installation task; install the base functionality Drupal needs to bootstrap.

File

core/includes/install.inc, line 605
API functions for installing modules and themes.

Code

function drupal_install_system($install_state) {

  // Remove the service provider of the early installer.
  unset($GLOBALS['conf']['container_service_providers']['InstallerServiceProvider']);
  $request = \Drupal::request();

  // Reboot into a full production environment to continue the installation.

  /** @var \Drupal\Core\Installer\InstallerKernel $kernel */
  $kernel = \Drupal::service('kernel');
  $kernel
    ->shutdown();

  // Have installer rebuild from the disk, rather then building from scratch.
  $kernel
    ->rebuildContainer(FALSE);
  $kernel
    ->prepareLegacyRequest($request);

  // Install base system configuration.
  \Drupal::service('config.installer')
    ->installDefaultConfig('core', 'core');

  // Install System module and rebuild the newly available routes.
  $kernel
    ->getContainer()
    ->get('module_installer')
    ->install(array(
    'system',
  ), FALSE);
  \Drupal::service('router.builder')
    ->rebuild();

  // Ensure default language is saved.
  if (isset($install_state['parameters']['langcode'])) {
    \Drupal::configFactory()
      ->getEditable('system.site')
      ->set('langcode', (string) $install_state['parameters']['langcode'])
      ->set('default_langcode', (string) $install_state['parameters']['langcode'])
      ->save(TRUE);
  }
}