it-swarm.com.de

Wo deklariere ich eine globale Variable?

Ich muss eine globale Variable definieren. Wo soll ich es definieren?

  1. Ich werde die globale Variable nicht in Vorlagendateien verwenden
  2. Ich sollte settings.php nicht verwenden
  3. Ich werde die globale Variable nur in allen benutzerdefinierten Moduldateien verwenden
4
Fero

Persönlich würde ich entweder ein Modul schreiben, das die Notwendigkeit einer globalen Variablen abstrahiert, oder zumindest eine Getter-Funktion zum Abrufen haben. Etwas wie

function foo_get_the_service ()
{
  static $service;

  if (! isset($service)) {
    $service = foo_init_the_service();
  }

  return $service;
}

Mehrere Drupal API-Funktionen machen etwas Ähnliches (zB menu_get_active_trail () und menu_set_active_trail () );

Und dann verfügt Ihr Modul vorzugsweise auch über Hilfsfunktionen, sodass Sie nicht direkt auf das globale Modul zugreifen müssen. Wenn etwas wirklich das Globale braucht, dann würden Sie den Getter verwenden.

Wenn Ihr Global eine Instanz einer richtigen PHP -Klasse) ist, können Sie die Verwendung eines echten Singleton prüfen.

8
mpdonadio

Ich denke, Sie suchen nach Drupals Variablen, indem Sie variable_set () verwenden, um sie zu erstellen, und variable_get () , um sie zur Verwendung in Ihren Modulen abzurufen.

Um variable_set () zu verwenden, geben Sie einfach den Variablennamen und den Wert an: variable_set(name, value).

Um variable_get () zu verwenden, müssen Sie nur den Variablennamen und den Standardwert angeben (der verwendet werden soll, wenn er noch nicht festgelegt ist): variable_get(name, default_value).

3
drmonkeyninja