web-dev-qa-db-fra.com

Comment définir une variable dans le fichier de configuration setting.php et l'utiliser à partir du code?

Comment définir une variable dans le fichier de configuration setting.php et l'utiliser à partir du code?

20
David

dans settings.php:

$conf['yoursite_something'] = 5;

Ensuite, dans votre code:

// Second argument is the default.
variable_get('yoursite_something', NULL);

Assurez-vous de préfixer les variables, soit avec le module dans lequel vous l'utilisez, soit avec le nom du site.

27
Berdir

Notez qu'il n'est pas nécessaire de déclarer des variables persistantes dans settings.php. Vous pouvez simplement appeler variable_get () à partir de votre code et définir une valeur par défaut au cas où la variable ne serait pas définie. Par exemple, le code suivant dira bonjour à chaque demande de page tant que la variable 'mymodule_say_hello' n'est pas explicitement définie sur 0:

<?php
function mymodule_init() {
  // Get the mymodule_say_hello variable or use 1 if it's not set. 
  if (variable_get('mymodule_say_hello', 1)) {
    drupal_set_message('Hello world');
  }
}
?>

Si nécessaire, votre module pourrait publier un formulaire qui permet à l'administrateur de désactiver cette fonctionnalité (la fonction system_settings_form rend cela très simple) ou vous pouvez modifier les paramètres par programme en appelant variable_set('mymodule_say_hello', 0) .

5
marcvangend

Drupal 8

Dans votre settings.php:

$settings['foo'] = 'bar';

Dans votre code:

use Drupal\Core\Site\Settings;

Settings::get('foo', 'mydefaultvalue');
2
leymannx