Jak ustawić zmienną w pliku konfiguracyjnym setting.php i użyć jej z kodu?

21

Jak ustawić zmienną w pliku konfiguracyjnym setting.php i użyć jej z kodu?

David
źródło

Odpowiedzi:

27

w settings.php:

$conf['yoursite_something'] = 5;

Następnie w kodzie:

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

Pamiętaj, aby poprzedzić zmienne albo modułem, w którym go używasz, albo nazwą witryny.

Berdir
źródło
5

Zauważ, że nie jest wymagane deklarowanie trwałych zmiennych w pliku settings.php. Możesz po prostu wywołać zmienną_get () ze swojego kodu i zdefiniować wartość domyślną na wypadek, gdyby zmienna nie została ustawiona. Na przykład następujący kod przywita każde żądanie strony, o ile zmienna „mymodule_say_hello” nie jest wyraźnie ustawiona na 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');
  }
}
?>

W razie potrzeby moduł może opublikować formularz, który pozwala administratorowi włączyć tę funkcję (funkcja system_settings_form sprawia, że ​​jest to naprawdę bardzo łatwe) lub możesz zmienić ustawienia programowo, dzwoniąc variable_set('mymodule_say_hello', 0).

marcvangend
źródło
1

Drupal 8

W twoich ustawieniach. Php:

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

W twoim kodzie:

use Drupal\Core\Site\Settings;

Settings::get('foo', 'mydefaultvalue');
leymannx
źródło