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?


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');

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.