Base de registre
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
$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 /
$instance->removeKey($key)
Méthode pour supprimer une clef
$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
$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)