Ich arbeite an einem Drupal 6-Modul, das der Variablentabelle einige Variablen hinzufügt. Wie kann ich vorgehen, um diese Variablen aus der Variablentabelle zu entfernen, wenn das Modul deinstalliert wird?
Behalten Sie Ihre Variablen im Auge und fügen Sie geeignete variable_del()
Aufrufe innerhalb einer Implementierung von hook_uninstall()
:
function foo_uninstall() {
variable_del('foo_variable1');
variable_del('foo_variable2');
}
Wie hook_uninstall()
ein Installations-Hook muss er sich in der .install
Datei Ihres Moduls befinden (z foo.install
. B. ).
Sie sollten nicht alle Variablen löschen, denen der Name Ihres Moduls vorangestellt ist, da Namespace-Kollisionen zurückkehren und Sie beißen. Wenn der Name Ihres Moduls beispielsweise lautet foo
, sollten Sie die variables
Tabelle nur nach allen Variablen mit Präfix abfragen foo_
. Aber was ist, wenn ich ein Modul mit dem Namen schreibe foo_awesome
? Sie würden auch meine Variablen löschen. Das wäre nicht schön.
UPDATE: Als ich die Diskussion in diesem Blog-Beitrag weiter durchgesehen habe , bin ich auf diese Idee von Dave Reid gestoßen, um die Methode zu übernehmen, die Drupal Core verwendet .
hook_variables()
), ist nicht die Kernmethode: So macht er es in einigen seiner eigenen Module. In Drupal 8 kann dieses Problem durch Hinzufügen eineshook_variable_info()
Kernhakens gelöst werden .