Meilleur moyen de supprimer toutes les variables lors de la désinstallation du module

9

J'écris un module qui écrit plusieurs variables (trois, quatre variables pour chaque type de contenu et autres).

Quelle méthode dois-je utiliser pour les supprimer sur hook_uninstall?

Est-il sûr d'effectuer une requête en recherchant les variables "mymodule_ *"?

Ou dois-je faire une boucle pour les types de contenu et les variables de recherche, alors appelez plusieurs fois variable_del?

arrubiu
la source
Au lieu de créer des variables nommées par type de contenu, vous pourriez utiliser une ou des variables structurées qui ont un nom et des clés connus pour chaque type de contenu?
Chris Burgess

Réponses:

10

Les variables sont mises en cache, donc la suppression manuelle est correcte tant que vous invalidez ce cache, par exemple

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

cache_clear_all('variables', 'cache_bootstrap');
Clive
la source
Cette requête est OK à condition que personne n'ait créé un module qui se trouve dans votre espace de noms de module - par exemple, si Views le faisait, cela vaperait les variables appartenant à des modules comme Views Block ou Views MysiteCustom. Pour cet exemple, ce ne serait probablement pas un problème majeur, mais vous avez l'idée :)
Chris Burgess
1

Vous pouvez également examiner le module Variable qui permet à votre module d'utiliser un registre, de configurer des valeurs par défaut, etc.

Chris Burgess
la source