Найкращий спосіб видалення всіх змінних при видаленні модуля


9

Я пишу модуль, який записує кілька змінних (три, чотири змінні для кожного типу вмісту та інші).

Який метод я повинен використовувати, щоб видалити їх на прив'язці_установки?

Чи безпечно виконувати запит, шукаючи змінні "mymodule_ *"?

Або я повинен циклічати типи вмісту та пошукові змінні, тому зателефонуйте у багато разів varia_del?


Замість створення змінних, названих для кожного типу вмісту, ви могли б використовувати структуровану змінну (и), яка має відоме ім'я та ключі для кожного типу вмісту?
Кріс Берджесс

Відповіді:


10

Змінні кешуються, тому видалення вручну - це добре, якщо ви визнаєте недійсним кеш, наприклад

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

cache_clear_all('variables', 'cache_bootstrap');

Цей запит добре, за умови, що ніхто не створив модуль, який знаходиться у просторі імен вашого модуля - наприклад, якщо Views це зробив, він міняє змінні, що належать до модулів, таких як Block Views або Views MysiteCustom. На цьому прикладі це, мабуть, не було б головним питанням, але ви розумієте :)
Кріс Берджесс

1

Ви також можете заглянути в модуль змінної, який дозволяє модулю використовувати реєстр, налаштовувати значення за замовчуванням тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.