Créer une configuration pour votre module

PHPBoost intègre une solution complète de gestion de configuration. Celle-ci est stockée automatiquement dans la Base de données, mais crée également un fichier de cache (bien plus rapide pour un accès très fréquent que la recherche en base de données). Selon la configuration du serveur, elle peut être stockée sur le disque dur ou dans la mémoire RAM du serveur (encore plus rapide).

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');
    }
}
?>