Najlepszy sposób na usunięcie wszystkich zmiennych podczas odinstalowywania modułu


9

Piszę moduł, który zapisuje kilka zmiennych (trzy, cztery zmienne dla każdego typu zawartości i inne).

Jakiej metody należy użyć, aby je usunąć przy hook_uninstall?

Czy bezpiecznie jest wykonać zapytanie, wyszukując zmienne „mymodule_ *”?

A może powinienem zapętlać typy zawartości i wyszukiwać zmienne, więc wywoływać wiele razy zmienna_del?


Zamiast tworzyć zmienne o nazwach według typu zawartości, możesz użyć zmiennych strukturalnych o znanej nazwie i kluczach dla każdego typu zawartości?
Chris Burgess,

Odpowiedzi:


10

Zmienne są buforowane, więc usuwanie ręczne jest w porządku, o ile unieważnisz tę pamięć podręczną, np

db_delete('variable')
  ->condition('name', 'mymodule_%', 'LIKE')
  ->execute();

cache_clear_all('variables', 'cache_bootstrap');

To zapytanie jest OK, pod warunkiem, że nikt nie utworzył modułu, który znajduje się w przestrzeni nazw modułu - np. Gdyby Widoki to zrobiły, wyparłoby zmienne należące do modułów takich jak Views Block lub Views MysiteCustom. W tym przykładzie prawdopodobnie nie byłby to poważny problem, ale masz pomysł :)
Chris Burgess

1

Możesz także zajrzeć do modułu Zmienna , który pozwala modułowi używać rejestru, konfigurować wartości domyślne i tak dalej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.