モジュールをアンインストールするときにすべての変数を削除する最良の方法


9

私はいくつかの変数(コンテンツタイプごとに3つ、4つの変数など)を書き込むモジュールを作成しています。

hook_uninstallでそれらを削除するには、どの方法を使用すればよいですか?

「mymodule_ *」変数を検索してクエリを実行しても安全ですか?

または、コンテンツタイプと検索変数をループする必要があるので、variable_delを何度も呼び出しますか?


コンテンツタイプごとに名前が付けられた変数を作成する代わりに、コンテンツタイプごとに既知の名前とキーを持つ構造化変数を使用できますか?
Chris Burgess 14

回答:


10

変数はキャッシュされるので、キャッシュを無効にする限り、手動で削除しても問題ありません。たとえば、

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

cache_clear_all('variables', 'cache_bootstrap');

モジュールネームスペース内に存在するモジュールを誰も作成していなければ、このクエリは問題ありません。たとえば、Viewsがこれを行った場合、Views BlockやViews MysiteCustomなどのモジュールに属する変数をvapeします。この例では、おそらく大きな問題ではないかもしれませんが、アイデアはわかります:)
Chris Burgess 14

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.