Melhor maneira de excluir todas as variáveis ​​ao desinstalar o módulo

9

Estou escrevendo um módulo que grava várias variáveis ​​(três, quatro variáveis ​​para cada tipo de conteúdo e outras).

Qual método devo usar para excluí-los no hook_uninstall?

É seguro executar uma consulta pesquisando variáveis ​​"mymodule_ *"?

Ou devo fazer um loop para tipos de conteúdo e pesquisar variáveis, então chame muitas vezes variable_del?

arrubiu
fonte
Em vez de criar variáveis ​​nomeadas por tipo de conteúdo, você pode usar uma (s) variável (s) estruturada (s) com nome e chaves conhecidos para cada tipo de conteúdo?
Chris Burgess

Respostas:

10

As variáveis ​​são armazenadas em cache; portanto, excluir manualmente é bom, desde que você invalide esse cache, por exemplo,

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

cache_clear_all('variables', 'cache_bootstrap');
Clive
fonte
Esta consulta está correta, desde que ninguém tenha criado um módulo que se situe dentro do namespace do seu módulo - por exemplo, se o Views fizesse isso, usaria as variáveis ​​pertencentes a módulos como Views Block ou Views MysiteCustom. Para este exemplo que provavelmente não seria um grande problema, mas você começa a idéia :)
Chris Burgess
1

Você também pode procurar no módulo Variável , que permite ao seu módulo usar um registro, configurar valores padrão e assim por diante.

Chris Burgess
fonte