La mejor manera de eliminar todas las variables al desinstalar el módulo

9

Estoy escribiendo un módulo que escribe varias variables (tres, cuatro variables para cada tipo de contenido y otras).

¿Qué método debo usar para eliminarlos en hook_uninstall?

¿Es seguro realizar una consulta, buscando variables "mymodule_ *"?

¿O debería recorrer los tipos de contenido y las variables de búsqueda, así que llame muchas veces variable_del?

arrubiu
fuente
En lugar de crear variables nombradas por tipo de contenido, ¿podría usar una o varias variables estructuradas que tengan un nombre y claves conocidos para cada tipo de contenido?
Chris Burgess

Respuestas:

10

Las variables se almacenan en caché, por lo que la eliminación manual está bien siempre que invalide esa caché, por ejemplo

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

cache_clear_all('variables', 'cache_bootstrap');
Clive
fuente
Esta consulta está bien siempre que nadie haya creado un módulo que se encuentre dentro del espacio de nombres de su módulo; por ejemplo, si Views lo hizo, vapearía las variables que pertenecen a módulos como Views Block o Views MysiteCustom. Para este ejemplo, eso probablemente no sería un problema importante, pero se entiende la idea :)
Chris Burgess
1

También puede buscar en el módulo Variable que le permite a su módulo usar un registro, configurar valores predeterminados, etc.

Chris Burgess
fuente