Ich habe mir angewöhnt, jetzt ziemlich robuste Konfigurationsfenster für meine Module zu erstellen, und ich finde, dass die Variablennamen und die Verwaltung ziemlich schmerzhaft sind .
Ich habe Variablen wie mymodule_section_subvar_varname_type_context
und ich verliere nicht nur den Überblick über die Reihenfolge der Elemente in meinen Variablennamen, sondern ich habe auch das Gefühl, dass ein so langer Variablenname ein Konstruktionsfehler ist.
Ich habe überlegt, ein serialisiertes Array in einer Variablen mymodule_section_settings
in Verbindung mit einer Reihe von Funktionen zu verwenden, die es einfach machen, dieses Array zu verwalten, aber ich würde gerne etwas darüber erfahren, welche (wenn überhaupt) Best Practices außerhalb von Präfixen und / oder etabliert wurden oder Beispiele für Module, denen wir vertrauen, und was sie für große Mengen von Variablen tun.
Vielen Dank!
quelle
Antworten:
Es ist möglich, eine Drupal-Variable zu verwenden, um ein Array zu enthalten. Dies ist auch das, was Drupal-Kernmodule tun (siehe book_type_is_allowed () ).
Es ist möglich, eine einzelne Drupal-Variable zu verwenden, um verschiedene Einstellungen, die von einem Modul verwendet werden, in ein Array aufzunehmen. Mit dem Formularattribut
#tree
ist es weiterhin möglich, system_settings_form () zu verwenden, um das Array in einer Drupal-Variablen zu speichern, ohne zusätzlichen Code zu schreiben. Die Serialisierung der De-Serialisierung des Codes erfolgt automatisch durch die Drupal-Kernfunktionen, die Drupal-Variablen verarbeiten (siehe Code von variable_set () ).Die Frage ist dann: Wann sollte eine einzelne Drupal-Variable verwendet werden, um unterschiedliche Einstellungen zu enthalten? Ich würde eine einzelne Variable für Einstellungen verwenden, die von einer Funktion oder einer Gruppe von Funktionen verwendet werden. Wenn das Array Werte enthält, die (zum Beispiel) von 10 verschiedenen Funktionen verwendet werden, diese Funktionen jedoch auf einen einzelnen Wert (oder mehrere Werte) von diesem Array zugreifen, würde ich keine einzige persistente Variable für die Einstellungen verwenden.
quelle
Wenn eine Reihe von Einstellungen in Beziehung stehen, ist es sinnvoll, sie in ein Array einzufügen. Zum Beispiel, wenn Sie dies
several variable_get
nacheinander tun . Es gibt Ihnen etwas Flexibilität und ist möglicherweise etwas schneller.Dies macht es jedoch für andere Programme schwierig, Ihre Einstellungen manuell über Drush Vset oder Strongarm zu bearbeiten. In diesen Fällen können lange Variablennamen tatsächlich hilfreich sein.
quelle