Peut-être que vous espérez apprendre que variable_set est le moyen magique de stocker toutes sortes de données structurées dans votre base de données, et que variable_get est le moyen de les extraire à nouveau. Ce n'est malheureusement pas le cas.
Les "variables persistantes", comme on les appelle souvent, sont destinées à des paires clé-valeur relativement simples qui devraient persister entre les demandes, les utilisateurs et les sessions, souvent jusqu'à ce qu'un administrateur de site modifie la valeur. Un bon exemple est le nom du site.
Alors, comment ça marche?
Lorsque Drupal est amorcé, toutes les variables sont lues à partir du cache (si disponible) ou de la table des variables. (Voir variable_initialize pour le code exact.) Les variables et stockées dans la $conf
variable globale , un énorme tableau. Drupal fait cela parce que c'est plus efficace que de faire une requête de base de données chaque fois qu'une variable est nécessaire. (C'est aussi la raison pour laquelle variable_set n'est pas adapté aux gros blobs de données: ils seraient chargés à chaque requête!)
Chaque fois que vous utilisez variable_get('variable_name', 'default_value')
, le nom de la variable est recherché dans le tableau $ conf. S'il existe, la valeur est renvoyée; sinon, la valeur par défaut est retournée.
Enfin, il existe un troisième membre de la famille: variable_del . Comme son nom l'indique, cela supprime une variable de la table des variables. Cette fonction est souvent utilisée dans les implémentations hook_uninstall , supprimant les variables lors de la désinstallation d'un module.
Si vous cherchez des moyens de stocker des structures de données personnalisées plus complexes dans la base de données, consultez hook_schema et drupal_write_record , ou utilisez le système d'entités Drupal et l' API d'entité .
variable_set()
le cache variable est reconstruit, c'est donc quelque chose qui est généralement réservé aux données qui sont assez durables et cohérentes comme les paramètres d'administration et autres. Ou, autrement dit, il ne devrait pas être utilisé à la place ou comme des variables statiques entre les fonctions qui changent pendant la création de la page.Si vous utilisez Drush (fortement recommandé), vous pouvez sortir
drush vget > variables.txt
de la ligne de commande pour créer un fichier texte avec une liste de toutes les variables actuelles et leurs valeurs. De même, vous pouvez utiliserdrush vset
pour modifier définir une variable sur une valeur différente.Voir GitHub pour plus de détails sur
variable-get
,variable-set
et d' autres commandes utiles.la source
Pour définir des variables, vous utiliseriez variable_set () . Ensuite, vous pouvez les récupérer à l'aide de variable_get () . Vous devez vous familiariser avec le site de l'API Drupal.
Les variables, si elles sont stockées, se trouvent dans le tableau des variables.
la source
Vous pouvez:
la source