final class Settings in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Site/Settings.php \Drupal\Core\Site\Settings
Read only settings that are initialized with the class.
Hierarchy
- class \Drupal\Core\Site\Settings
Expanded class hierarchy of Settings
Related topics
86 files declare their use of Settings
- ApcuBackendFactory.php in core/
lib/ Drupal/ Core/ Cache/ ApcuBackendFactory.php - Contains \Drupal\Core\Cache\ApcuBackendFactory.
- authorize.php in core/
authorize.php - Administrative script for running authorized file operations.
- bootstrap.inc in core/
includes/ bootstrap.inc - Functions that need to be loaded on every Drupal request.
- BootstrapConfigStorageFactory.php in core/
lib/ Drupal/ Core/ Config/ BootstrapConfigStorageFactory.php - Contains \Drupal\Core\Config\BootstrapConfigStorageFactory.
- BrowserTestBase.php in core/
modules/ simpletest/ src/ BrowserTestBase.php - Contains \Drupal\simpletest\BrowserTestBase.
28 string references to 'Settings'
- aggregator.links.task.yml in core/
modules/ aggregator/ aggregator.links.task.yml - core/modules/aggregator/aggregator.links.task.yml
- AggregatorAdminTest::testSettingsPage in core/
modules/ aggregator/ src/ Tests/ AggregatorAdminTest.php - Tests the settings form to ensure the correct default values are used.
- book.links.task.yml in core/
modules/ book/ book.links.task.yml - core/modules/book/book.links.task.yml
- ConfigNamesMapper::getTypeName in core/
modules/ config_translation/ src/ ConfigNamesMapper.php - Returns the name of the type of data the mapper encapsulates.
- ConfigNamesMapperTest::testGetTypeName in core/
modules/ config_translation/ tests/ src/ Unit/ ConfigNamesMapperTest.php - Tests ConfigNamesMapper::getTypeName().
1 service uses Settings
File
- core/
lib/ Drupal/ Core/ Site/ Settings.php, line 18 - Contains \Drupal\Core\Site\Settings.
Namespace
Drupal\Core\SiteView source
final class Settings {
/**
* Array with the settings.
*
* @var array
*/
private $storage = array();
/**
* Singleton instance.
*
* @var \Drupal\Core\Site\Settings
*/
private static $instance;
/**
* Constructor.
*
* @param array $settings
* Array with the settings.
*/
public function __construct(array $settings) {
$this->storage = $settings;
self::$instance = $this;
}
/**
* Returns the settings instance.
*
* A singleton is used because this class is used before the container is
* available.
*
* @return \Drupal\Core\Site\Settings
*/
public static function getInstance() {
return self::$instance;
}
/**
* Protects creating with clone.
*/
private function __clone() {
}
/**
* Prevents settings from being serialized.
*/
public function __sleep() {
throw new \LogicException('Settings can not be serialized. This probably means you are serializing an object that has an indirect reference to the Settings object. Adjust your code so that is not necessary.');
}
/**
* Returns a setting.
*
* Settings can be set in settings.php in the $settings array and requested
* by this function. Settings should be used over configuration for read-only,
* possibly low bootstrap configuration that is environment specific.
*
* @param string $name
* The name of the setting to return.
* @param mixed $default
* (optional) The default value to use if this setting is not set.
*
* @return mixed
* The value of the setting, the provided default if not set.
*/
public static function get($name, $default = NULL) {
return isset(self::$instance->storage[$name]) ? self::$instance->storage[$name] : $default;
}
/**
* Returns all the settings. This is only used for testing purposes.
*
* @return array
* All the settings.
*/
public static function getAll() {
return self::$instance->storage;
}
/**
* Bootstraps settings.php and the Settings singleton.
*
* @param string $app_root
* The app root.
* @param string $site_path
* The current site path.
* @param \Composer\Autoload\ClassLoader $class_loader
* The class loader that is used for this request. Passed by reference and
* exposed to the local scope of settings.php, so as to allow it to be
* decorated with Symfony's ApcClassLoader, for example.
*
* @see default.settings.php
*/
public static function initialize($app_root, $site_path, &$class_loader) {
// Export these settings.php variables to the global namespace.
global $config_directories, $config;
$settings = array();
$config = array();
$databases = array();
if (is_readable($app_root . '/' . $site_path . '/settings.php')) {
require $app_root . '/' . $site_path . '/settings.php';
}
// Initialize Database.
Database::setMultipleConnectionInfo($databases);
// Initialize Settings.
new Settings($settings);
}
/**
* Gets a salt useful for hardening against SQL injection.
*
* @return string
* A salt based on information in settings.php, not in the database.
*
* @throws \RuntimeException
*/
public static function getHashSalt() {
$hash_salt = self::$instance
->get('hash_salt');
// This should never happen, as it breaks user logins and many other
// services. Therefore, explicitly notify the user (developer) by throwing
// an exception.
if (empty($hash_salt)) {
throw new \RuntimeException('Missing $settings[\'hash_salt\'] in settings.php.');
}
return $hash_salt;
}
/**
* Generates a prefix for APC user cache keys.
*
* A standardized prefix is useful to allow visual inspection of an APC user
* cache. By default, this method will produce a unique prefix per site using
* the hash salt. If the setting 'apcu_ensure_unique_prefix' is set to FALSE
* then if the caller does not provide a $site_path only the Drupal root will
* be used. This allows WebTestBase to use the same prefix ensuring that the
* number of APC items created during a full test run is kept to a minimum.
* Additionally, if a multi site implementation does not use site specific
* module directories setting apcu_ensure_unique_prefix would allow the sites
* to share APC cache items.
*
* @param $identifier
* An identifier for the prefix. For example, 'class_loader' or
* 'cache_backend'.
*
* @return string
* The prefix for APC user cache keys.
*/
public static function getApcuPrefix($identifier, $root, $site_path = '') {
if (static::get('apcu_ensure_unique_prefix', TRUE)) {
return 'drupal.' . $identifier . '.' . \Drupal::VERSION . '.' . static::get('deployment_identifier') . '.' . hash_hmac('sha256', $identifier, static::get('hash_salt') . '.' . $root . '/' . $site_path);
}
return 'drupal.' . $identifier . '.' . \Drupal::VERSION . '.' . static::get('deployment_identifier') . '.' . Crypt::hashBase64($root . '/' . $site_path);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Settings:: |
private static | property | Singleton instance. | |
Settings:: |
private | property | Array with the settings. | |
Settings:: |
public static | function | Returns a setting. | |
Settings:: |
public static | function | Returns all the settings. This is only used for testing purposes. | |
Settings:: |
public static | function | Generates a prefix for APC user cache keys. | |
Settings:: |
public static | function | Gets a salt useful for hardening against SQL injection. | |
Settings:: |
public static | function | Returns the settings instance. | |
Settings:: |
public static | function | Bootstraps settings.php and the Settings singleton. | |
Settings:: |
private | function | Protects creating with clone. | |
Settings:: |
public | function | Constructor. | |
Settings:: |
public | function | Prevents settings from being serialized. |