Wie setze ich eine Variable in der Konfigurationsdatei setting.php und verwende sie aus dem Code?

21

Wie setze ich eine Variable in der Konfigurationsdatei setting.php und verwende sie aus dem Code?

David
quelle

Antworten:

27

in settings.php:

$conf['yoursite_something'] = 5;

Dann in Ihrem Code:

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

Stellen Sie sicher, dass Sie den Variablen entweder das Modul voranstellen, in dem Sie sie verwenden, oder den Site-Namen.

Berdir
quelle
5

Beachten Sie, dass es nicht erforderlich ist, persistente Variablen in settings.php zu deklarieren. Sie können einfach variable_get () aus Ihrem Code aufrufen und einen Standardwert definieren, falls die Variable nicht gesetzt ist. Der folgende Code sagt beispielsweise bei jeder Seitenanforderung Hallo, solange die Variable "mymodule_say_hello" nicht explizit auf "Hallo" gesetzt ist 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');
  }
}
?>

Bei Bedarf kann Ihr Modul ein Formular veröffentlichen, mit dem der Administrator diese Funktion deaktivieren kann (die Funktion system_settings_form macht dies sehr einfach), oder Sie können die Einstellungen programmgesteuert durch Aufrufen ändern variable_set('mymodule_say_hello', 0).

marcvangend
quelle
1

Drupal 8

In deiner settings.php:

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

In Ihrem Code:

use Drupal\Core\Site\Settings;

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