Как установить переменную в конфигурационном файле setting.php и использовать ее из кода?

21

Как установить переменную в конфигурационном файле setting.php и использовать ее из кода?

Дэвид
источник

Ответы:

27

в settings.php:

$conf['yoursite_something'] = 5;

Затем в вашем коде:

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

Убедитесь, что в качестве префикса используются переменные либо с тем модулем, в котором вы его используете, либо с именем сайта.

Berdir
источник
5

Обратите внимание, что не требуется объявлять постоянные переменные в settings.php. Вы можете просто вызвать variable_get () из своего кода и определить значение по умолчанию, если переменная не установлена. Например, следующий код будет говорить привет при каждом запросе страницы, если переменная 'mymodule_say_hello' явно не установлена ​​в 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');
  }
}
?>

При необходимости ваш модуль может опубликовать форму, которая позволяет администратору отключить эту функцию ( функция system_settings_form делает это очень просто), или вы можете изменить настройки программно, вызвав их variable_set('mymodule_say_hello', 0).

marcvangend
источник
1

Drupal 8

В ваших settings.php:

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

В вашем коде:

use Drupal\Core\Site\Settings;

Settings::get('foo', 'mydefaultvalue');
leymannx
источник