Dernière mise à jour : 24/11/2012 à 09h53
Table des matières
Nous allons voir comment utiliser ces outils mis en place par le framework.
Mise en place
Il va falloir créer une classe, par exemple MyModuleConfig. Elle doit être crée dans un fichier : MyModuleConfig.class.php
Elle devra être une classe fille de AbstractConfigData. Voici un exemple :
Code PHP :
<?php class MyModuleConfig extends AbstractConfigData { //Renvoie le nom de votre module public function get_name() { //Retourne la valeur contenue dans le tableau de la configuration avec comme clé = name return $this->get_property('name'); } //Modifie le nom de votre module public function set_name($name) { // Modifie la configuration avec comme clé = name $this->set_property('name', $name); } public function get_default_values() { // Tableau de la configuration par défaut return array( 'name' => 'Nom de votre module' ); } /** * Returns the configuration. * @return MyModuleConfig */ public static function load() { return ConfigManager::load(__CLASS__, 'my-module', 'config'); } /** * Saves the configuration in the database. Has it become persistent. */ public static function save() { ConfigManager::save('my-module', self::load(), 'config'); } } ?>
Utilisation
Pour récupérer la configuration de votre module :
Code PHP :
//Renvoie l'objet MyModuleConfig avec la configuration (par défaut si besoin) $config = MyModuleConfig::load(); // Affiche le nom de votre module echo $config->get_name();
Pour modifier la configuration :
Code PHP :
//Renvoie l'objet MyModuleConfig avec la configuration (par défaut si besoin) $config = MyModuleConfig::load(); // On met en place la nouvelle valeur $config->set_name('ma nouvelle valeur'); //On sauvegarde la config MyModuleConfig::save();
Conseils
Pour une meilleure qualité du code, les clés des tableaux doivent être stockées dans des constantes.
Exemple :
Code PHP :
<?php class MyModuleConfig extends AbstractConfigData { const NAME = 'name'; //Renvoie le nom de votre module public function get_name() { return $this->get_property(self::NAME); } //Modifie le nom de votre module public function set_name($name) { $this->set_property(self::NAME, $name); } public function get_default_values() { // Tableau de la configuration par défaut return array( self::NAME => 'Nom de votre module' ); } /** * Returns the configuration. * @return MyModuleConfig */ public static function load() { return ConfigManager::load(__CLASS__, 'my-module', 'config'); } /** * Saves the configuration in the database. Has it become persistent. */ public static function save() { ConfigManager::save('my-module', self::load(), 'config'); } } ?>