Base de registre

Un article de OviWiki.


Sommaire

Structure de la base de registre

La base de registre est un moyen de mémoriser des informations librement dans un arbre sans créer de table et sans utiliser mysql. La facilité d'utilisation est mise en avant au détriment des performances.

disposition des répertoires à la racine :

le répertoire bab/ contient toutes les clefs liées au noyau

un répertoire par module peut être créé

API php

La fonction bab_getRegistryInstance est disponible dans tout ovidentia (fichier addonapi.php), elle permet d'obtenir l'instance de l'objet pour utiliser la base de registre.

exemple :

$instance = bab_getRegistryInstance();

$instance est un objet bab_registry


$instance->changeDirectory($dir)

Cette méthode permet de se déplacer dans l'arborescence de la base de registre, $dir est une chaîne de caractères.

Exemple : pour définir des valeurs de configuration dans un module, vous pouvez vous positionner dans un répertoire du nom du module et dans un sous-répertoire dédié à la configuration : $instance->changeDirectory('/monmodule/configuration');

$instance->setKeyValue($key, $value)

Méthode utilisée pour créer une clef et une valeur, $key est une chaîne, et $value peut être un objet, un tableau, une chaîne, un nombre entier ou un nombre flottant.

$key ne doit pas contenir de /

Remarque : la clé sera systématiquement créée dans le répertoire sélectionné auparavant (méthode changeDirectory()). Si le répertoire n'existe pas, la base de registre le créera.

$instance->removeKey($key)

Méthode pour supprimer une clef et sa valeur

$instance->getValue($key, $default_create = null)

Cette méthode permet d'obtenir une valeur enregistrée ou NULL si la clef n'existe pas, la valeur obtenue sera du même type que celle qui a été enregistrée.

Si le deuxième paramètre et renseigné et que la valeur n'existe pas, c'est le deuxième paramètre qui sera utilisé comme valeur. la méthode retournera cette valeur et la clef sera crée dans la base de registre avec cette valeur.

$instance->getValueEx($key)

Cette méthode retourne un tableau avec des informations complémentaires sur la clef.

Les clef suivantes pourront être utilisées :

  • value : la valeur de la clef
  • create_id_user : l'ID de l'utilisateur qui a crée la clef
  • update_id_user : l'ID du dernier utilisateur ayant modifié la valeur
  • createdate : date de création de la clef
  • lastupdate : date de la dernière modification de le clef

$instance->deleteDirectory()

Permet d'effacer le répertoire en cours.

$instance->fetchChildDir()

Permet de parcourir les répertoires enfants, la méthode retourne le répertoire suivant

$instance->fetchChildKey()

Permet de parcourir les clefs enfants, la méthode retourne la clef suivante

Module regedit

le module regedit est en cours de développement (il est présent dans le CVS ovidentia)