J'ai dévellopé cette classe pour pouvoir gérer une classe de configuration, cela permet de savoir si une variable est nouvelle où a été modifiée, c'est un premier jet, je la poursuivrai en rentrant de vacances (dans 2 semaines).
En tout honnêteté, cette classe est inspiré du projet xoops.
Fonctionnement :
tout d'abord, cette classe DOIT être étendue car c'est une classe abstraite
on initialise les variables avec _initVar(var_name, value, readable, writable) (les 2 derniers paramètres ne concernent que les appels de l'exterieur de la classe)
on peut mettre à jour les variables :
- de l'interieur de la classe (sans restriction) par _setVar(var_name, value)
- de l'exterieur de la classe (uniquement pour les variables dont l'écriture a été autorisée durant leur initialisation) par setVar(var_name, value) ou directement $obj->foo = 'OBJ::FOO'
on peut lire les variables :
- de l'interieur de la classe (sans restriction) par _getVar(var_name, value)
- de l'exterieur de la classe (uniquement pour les variables dont la lecture a été autorisée durant leur initialisation) par getVar(var_name, value) ou directement echo $obj->foo
on peut aussi mettre à jour les variables sans changer leur état (modifiées ou non), mais uniquement de l'intérieur de la classe, par _setVar(var_name, value, false)
enfin, savoir si une variable existe ou non : issetVar(var_name)