Cara terbaik untuk menghapus semua variabel saat menghapus modul

9

Saya sedang menulis modul yang menulis beberapa variabel (tiga, empat variabel untuk setiap jenis konten, dan lainnya).

Metode mana yang harus saya gunakan untuk menghapusnya di hook_uninstall?

Apakah aman untuk melakukan kueri, mencari variabel "mymodule_ *"?

Atau haruskah saya mengulang jenis konten dan mencari variabel, jadi panggil berkali-kali variabel_del?

arrubiu
sumber
Alih-alih membuat variabel bernama per jenis konten, Anda bisa menggunakan variabel terstruktur yang memiliki nama dan kunci yang dikenal untuk setiap jenis konten?
Chris Burgess

Jawaban:

10

Variabel di-cache, jadi menghapus secara manual tidak masalah selama Anda membatalkan cache itu, misalnya

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

cache_clear_all('variables', 'cache_bootstrap');
Clive
sumber
Query ini OK asalkan tidak ada yang membuat modul yang berada di dalam namespace modul Anda - misalnya jika Views melakukan ini, itu akan vape variabel milik modul seperti Views Block atau Views MysiteCustom. Untuk contoh ini yang mungkin tidak akan menjadi masalah besar, tetapi Anda mendapatkan idenya :)
Chris Burgess
1

Anda juga mungkin melihat ke dalam modul Variabel yang memungkinkan modul Anda untuk menggunakan registri, mengkonfigurasi nilai-nilai default dan sebagainya.

Chris Burgess
sumber