diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index 107ca9a..202f5b9 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -719,7 +719,7 @@ function drupal_settings_initialize() { global $base_url, $base_path, $base_root, $script_path; // Export these settings.php variables to the global namespace. - global $databases, $cookie_domain, $conf, $installed_profile, $update_free_access, $class_loader, $db_url, $db_prefix, $drupal_hash_salt, $is_https, $base_secure_url, $base_insecure_url, $config_directories; + global $databases, $cookie_domain, $conf, $settings, $installed_profile, $db_url, $db_prefix, $drupal_hash_salt, $is_https, $base_secure_url, $base_insecure_url, $config_directories; $conf = array(); // Make conf_path() available as local variable in settings.php. @@ -945,6 +945,27 @@ function drupal_get_filename($type, $name, $filename = NULL) { } /** + * Returns a setting. + * + * Settings can be set in settings.php in the $settings.php array and requested + * by this function. Settings should be used over configuration for read-only, + * possibly low bootstrap configuration that is environment specific. + * + * @param $name + * The name of the setting to return. + * @param $default + * (optional) The default value to use if this setting is not set. + * + * @return + * The value of the settings. + */ +function settings_get($name, $default = NULL) { + global $settings; + + return isset($settings[$name]) ? $settings[$name] : $default; +} + +/** * Loads the persistent variable table. * * The variable table is composed of values that have been saved in the table @@ -1391,7 +1412,7 @@ function drupal_serve_page_from_cache(stdClass $cache) { // response to reply to a subsequent request for a given URL without // revalidation. If a Vary header has been set in hook_boot(), it is assumed // that the module knows how to cache the page. - if (!isset($hook_boot_headers['vary']) && !config('system.performance')->get('cache.page.omit_vary_cookie')) { + if (!isset($hook_boot_headers['vary']) && !settings_get('omit_vary_cookie')) { header('Vary: Cookie'); } @@ -2118,7 +2139,7 @@ function drupal_bootstrap($phase = NULL, $new_phase = TRUE) { break; case DRUPAL_BOOTSTRAP_SESSION: - require_once DRUPAL_ROOT . '/' . variable_get('session_inc', 'core/includes/session.inc'); + require_once DRUPAL_ROOT . '/' . settings_get('session_inc', 'core/includes/session.inc'); drupal_session_initialize(); break; @@ -2258,11 +2279,11 @@ function _drupal_bootstrap_page_cache() { // Allow specifying special cache handlers in settings.php, like // using memcached or files for storing cache information. require_once DRUPAL_ROOT . '/core/includes/cache.inc'; - foreach (variable_get('cache_backends', array()) as $include) { + foreach (settings_get('cache_backends', array()) as $include) { require_once DRUPAL_ROOT . '/' . $include; } // Check for a cache mode force from settings.php. - if (variable_get('page_cache_without_database')) { + if (settings_get('page_cache_without_database')) { $cache_enabled = TRUE; } else { @@ -2287,13 +2308,13 @@ function _drupal_bootstrap_page_cache() { date_default_timezone_set(drupal_get_user_timezone()); // If the skipping of the bootstrap hooks is not enforced, call // hook_boot. - if (variable_get('page_cache_invoke_hooks', TRUE)) { + if (settings_get('page_cache_invoke_hooks', TRUE)) { bootstrap_invoke_all('boot'); } drupal_serve_page_from_cache($cache); // If the skipping of the bootstrap hooks is not enforced, call // hook_exit. - if (variable_get('page_cache_invoke_hooks', TRUE)) { + if (settings_get('page_cache_invoke_hooks', TRUE)) { bootstrap_invoke_all('exit'); } // We are done. @@ -2967,12 +2988,12 @@ function ip_address() { if (!isset($ip_address)) { $ip_address = $_SERVER['REMOTE_ADDR']; - if (variable_get('reverse_proxy', 0)) { - $reverse_proxy_header = variable_get('reverse_proxy_header', 'HTTP_X_FORWARDED_FOR'); + if (settings_get('reverse_proxy', 0)) { + $reverse_proxy_header = settings_get('reverse_proxy_header', 'HTTP_X_FORWARDED_FOR'); if (!empty($_SERVER[$reverse_proxy_header])) { // If an array of known reverse proxy IPs is provided, then trust // the XFF header if request really comes from one of them. - $reverse_proxy_addresses = variable_get('reverse_proxy_addresses', array()); + $reverse_proxy_addresses = settings_get('reverse_proxy_addresses', array()); // Turn XFF header into an array. $forwarded = explode(',', $_SERVER[$reverse_proxy_header]); @@ -3012,12 +3033,11 @@ function drupal_classloader() { static $loader; if (!isset($loader)) { - global $class_loader; // Include the Symfony ClassLoader for loading PSR-0-compatible classes. require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php'; - switch ($class_loader) { + switch (settings_get('class_loader')) { case 'apc': if (function_exists('apc_store')) { require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php'; diff --git a/core/includes/common.inc b/core/includes/common.inc index bb14e95..39a73a2 100644 --- a/core/includes/common.inc +++ b/core/includes/common.inc @@ -809,7 +809,7 @@ function drupal_http_request($url, array $options = array()) { $options['timeout'] = (float) $options['timeout']; // Use a proxy if one is defined and the host is not on the excluded list. - $proxy_server = variable_get('proxy_server', ''); + $proxy_server = settings_get('proxy_server', ''); if ($proxy_server && _drupal_http_use_proxy($uri['host'])) { // Set the scheme so we open a socket to the proxy server. $uri['scheme'] = 'proxy'; @@ -819,13 +819,13 @@ function drupal_http_request($url, array $options = array()) { unset($uri['query']); // Add in username and password to Proxy-Authorization header if needed. - if ($proxy_username = variable_get('proxy_username', '')) { - $proxy_password = variable_get('proxy_password', ''); + if ($proxy_username = settings_get('proxy_username', '')) { + $proxy_password = settings_get('proxy_password', ''); $options['headers']['Proxy-Authorization'] = 'Basic ' . base64_encode($proxy_username . (!empty($proxy_password) ? ":" . $proxy_password : '')); } // Some proxies reject requests with any User-Agent headers, while others // require a specific one. - $proxy_user_agent = variable_get('proxy_user_agent', ''); + $proxy_user_agent = settings_get('proxy_user_agent', ''); // The default value matches neither condition. if ($proxy_user_agent === NULL) { unset($options['headers']['User-Agent']); @@ -838,7 +838,7 @@ function drupal_http_request($url, array $options = array()) { switch ($uri['scheme']) { case 'proxy': // Make the socket connection to a proxy server. - $socket = 'tcp://' . $proxy_server . ':' . variable_get('proxy_port', 8080); + $socket = 'tcp://' . $proxy_server . ':' . settings_get('proxy_port', 8080); // The Host header still needs to match the real request. $options['headers']['Host'] = $uri['host']; $options['headers']['Host'] .= isset($uri['port']) && $uri['port'] != 80 ? ':' . $uri['port'] : ''; @@ -1068,7 +1068,7 @@ function drupal_http_request($url, array $options = array()) { * TRUE if a proxy should be used for this host. */ function _drupal_http_use_proxy($host) { - $proxy_exceptions = variable_get('proxy_exceptions', array('localhost', '127.0.0.1')); + $proxy_exceptions = settings_get('proxy_exceptions', array('localhost', '127.0.0.1')); return !in_array(strtolower($host), $proxy_exceptions, TRUE); } @@ -4757,10 +4757,10 @@ function drupal_valid_token($token, $value = '', $skip_anonymous = FALSE) { * Loads code for subsystems and modules, and registers stream wrappers. */ function _drupal_bootstrap_code() { - require_once DRUPAL_ROOT . '/' . variable_get('path_inc', 'core/includes/path.inc'); + require_once DRUPAL_ROOT . '/' . settings_get('path_inc', 'core/includes/path.inc'); require_once DRUPAL_ROOT . '/core/includes/theme.inc'; require_once DRUPAL_ROOT . '/core/includes/pager.inc'; - require_once DRUPAL_ROOT . '/' . variable_get('menu_inc', 'core/includes/menu.inc'); + require_once DRUPAL_ROOT . '/' . settings_get('menu_inc', 'core/includes/menu.inc'); require_once DRUPAL_ROOT . '/core/includes/tablesort.inc'; require_once DRUPAL_ROOT . '/core/includes/file.inc'; require_once DRUPAL_ROOT . '/core/includes/unicode.inc'; diff --git a/core/includes/database.inc b/core/includes/database.inc index 0cbaaa6..ec9bcf8 100644 --- a/core/includes/database.inc +++ b/core/includes/database.inc @@ -905,7 +905,7 @@ function db_ignore_slave() { // Five minutes is long enough to allow the slave to break and resume // interrupted replication without causing problems on the Drupal site from // the old data. - $duration = variable_get('maximum_replication_lag', 300); + $duration = settings_get('maximum_replication_lag', 300); // Set session variable with amount of time to delay before using slave. $_SESSION['ignore_slave_server'] = REQUEST_TIME + $duration; } diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc index 755c2c1..60d1ab9 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -279,7 +279,7 @@ function install_begin_request(&$install_state) { require_once DRUPAL_ROOT . '/core/includes/file.inc'; require_once DRUPAL_ROOT . '/core/includes/install.inc'; require_once DRUPAL_ROOT . '/core/includes/schema.inc'; - require_once DRUPAL_ROOT . '/' . variable_get('path_inc', 'core/includes/path.inc'); + require_once DRUPAL_ROOT . '/' . settings_get('path_inc', 'core/includes/path.inc'); // Load module basics (needed for hook invokes). include_once DRUPAL_ROOT . '/core/includes/module.inc'; diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc index 4b3e80c..76bd732 100644 --- a/core/includes/theme.maintenance.inc +++ b/core/includes/theme.maintenance.inc @@ -22,7 +22,7 @@ function _drupal_maintenance_theme() { return; } - require_once DRUPAL_ROOT . '/' . variable_get('path_inc', 'core/includes/path.inc'); + require_once DRUPAL_ROOT . '/' . settings_get('path_inc', 'core/includes/path.inc'); require_once DRUPAL_ROOT . '/core/includes/theme.inc'; require_once DRUPAL_ROOT . '/core/includes/common.inc'; require_once DRUPAL_ROOT . '/core/includes/unicode.inc'; diff --git a/core/modules/system/config/system.performance.yml b/core/modules/system/config/system.performance.yml index 61adb18..d508591 100644 --- a/core/modules/system/config/system.performance.yml +++ b/core/modules/system/config/system.performance.yml @@ -1,7 +1,6 @@ cache: page: enabled: '0' - omit_vary_cookie: '' max_age: '0' css: preprocess: '0' diff --git a/core/modules/system/lib/Drupal/system/Tests/Bootstrap/IpAddressTest.php b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/IpAddressTest.php index a6f87ef..94a9e7c 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Bootstrap/IpAddressTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/IpAddressTest.php @@ -58,14 +58,14 @@ function testIPAddressHost() { ); // Proxy forwarding on but no proxy addresses defined. - variable_set('reverse_proxy', 1); + $GLOBALS['settings']['reverse_proxy'] = 1; $this->assertTrue( ip_address() == $this->remote_ip, 'Proxy forwarding without trusted proxies got remote IP address.' ); // Proxy forwarding on and proxy address not trusted. - variable_set('reverse_proxy_addresses', array($this->proxy_ip, $this->proxy2_ip)); + $GLOBALS['settings']['reverse_proxy_addresses'] = array($this->proxy_ip, $this->proxy2_ip); drupal_static_reset('ip_address'); $_SERVER['REMOTE_ADDR'] = $this->untrusted_ip; $this->assertTrue( @@ -92,7 +92,7 @@ function testIPAddressHost() { ); // Custom client-IP header. - variable_set('reverse_proxy_header', 'HTTP_X_CLUSTER_CLIENT_IP'); + $GLOBALS['settings']['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP'; $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'] = $this->cluster_ip; drupal_static_reset('ip_address'); $this->assertTrue( diff --git a/core/modules/system/system.install b/core/modules/system/system.install index 8c7d72a..2024b4b 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -416,11 +416,11 @@ function system_requirements($phase) { // Verify the update.php access setting if ($phase == 'runtime') { - if (!empty($GLOBALS['update_free_access'])) { + if (settings_get('update_free_access')) { $requirements['update access'] = array( 'value' => $t('Not protected'), 'severity' => REQUIREMENT_ERROR, - 'description' => $t('The update.php script is accessible to everyone without authentication check, which is a security risk. You must change the $update_free_access value in your settings.php back to FALSE.'), + 'description' => $t('The update.php script is accessible to everyone without authentication check, which is a security risk. You must change the @settings_name value in your settings.php back to FALSE.', array('@settings_name' => '$settings[\'update_free_access\']')), ); } else { @@ -1873,7 +1873,6 @@ function system_update_8017() { 'page_compression' => 'response.gzip', 'preprocess_css' => 'css.preprocess', 'preprocess_js' => 'js.preprocess', - 'omit_vary_cookie' => 'omit_vary_cookie', 'stale_file_threshold' => 'stale_file_threshold', )); } diff --git a/core/update.php b/core/update.php index ff65c6e..f92ce47 100644 --- a/core/update.php +++ b/core/update.php @@ -209,8 +209,8 @@ function update_results_page() { $output .= '
'; } - if (!empty($GLOBALS['update_free_access'])) { - $output .= "Reminder: don't forget to set the \$update_free_access
value in your settings.php
file back to FALSE
.
Reminder: don't forget to set the \$settings['update_free_access']
value in your settings.php
file back to FALSE
.
Access denied. You are not authorized to access this page. Log in using either an account with the administer software updates permission or the site maintenance account (the account you created during installation). If you cannot log in, you will have to edit settings.php
to bypass this access check. To do this:
sites/your_site_name
if such directory exists, or else to sites/default
which applies otherwise.$update_free_access = FALSE;
. Change it to $update_free_access = TRUE;
.$update_free_access = FALSE;
.$settings[\'update_free_access\'] = FALSE;
. Change it to $settings[\'update_free_access\'] = TRUE;
.$settings[\'update_free_access\'] = FALSE;
.