1 bootstrap.inc _backdrop_bootstrap_configuration()

Sets up the script environment and loads settings.php.

File

core/includes/bootstrap.inc, line 3069
Functions that need to be loaded on every Backdrop request.

Code

function _backdrop_bootstrap_configuration() {
  backdrop_environment_initialize();

  // Start a page timer:
  timer_start('page');
  // Initialize the configuration, including variables from settings.php.
  backdrop_settings_initialize();
  // Sanitize input from $_GET, $_POST, etc.
  _backdrop_bootstrap_sanitize_request();

  // Set the Backdrop custom error handler.
  set_error_handler('_backdrop_error_handler');
  set_exception_handler('_backdrop_exception_handler');

  // Load configuration classes and functions.
  require_once BACKDROP_ROOT . '/core/includes/config.inc';

  // Redirect the user to the installation script if Backdrop has not been
  // installed yet (i.e., if no $databases array has been defined in the
  // settings.php file) and we are not already installing.
  if (empty($GLOBALS['databases']) && !backdrop_installation_attempted()) {
    include_once BACKDROP_ROOT . '/core/includes/install.inc';
    install_goto('core/install.php');
  }

  // Untrusted host names, throw an exception for the end-user.
  if (!defined('MAINTENANCE_MODE') && !backdrop_check_trusted_hosts($_SERVER['HTTP_HOST'])) {
    throw new Exception(format_string('The HTTP Host "@hostname" is not white-listed for this site. Check the trusted_host_patterns setting in settings.php.', array('@hostname' => $_SERVER['HTTP_HOST'])));
  }

  // Bootstrap the database if it is needed but not yet available.
  $config_storage = config_get_config_storage('active');

  // Check that the config directory is not empty.
  if (!defined('MAINTENANCE_MODE') && (!empty($config_storage))) {
    if (!($config_storage->exists('system.core') || $config_storage->exists('system.performance'))) {
      if (is_a($config_storage, 'ConfigFileStorage')) {
        $directory = config_get_config_directory('active');
        $exception_message = "The configuration directory in settings.php is specified as '$directory', but this directory is either empty or missing crucial files. Check that the \$config_directories variable is correct in settings.php.";
      }
      else {
        $exception_message = "The active configuration location is either empty or missing crucial information. Check that the \$settings['config_active_class'] variable is correct in settings.php.";
      }
      throw new Exception($exception_message);
    }
  }
}