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

21

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

David
la source

Réponses:

27

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.

Berdir
la source
5

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 n'est 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).

marcvangend
la source
1

Drupal 8

Dans votre settings.php:

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

Dans votre code:

use Drupal\Core\Site\Settings;

Settings::get('foo', 'mydefaultvalue');
leymannx
la source