Ce qui suit est déprécié depuis janvier 2010.
Merci de votre compréhension.
Dans wMVC, les fichiers de configuration sont en XML. Ce format est bien géré par PHP grâce à l’objet SimpleXML. J’ai donc réalisé une petite classe qui permet de gérer une configuration complète sans trop d’effort.
Voici la classe wConfig, rien de bien compliqué :
class wConfig
{
private $XMLConfig;
private static $instance;
private function __construct()
{
$xml = file_get_contents('applications' . __DIR_SEPARATOR__ . wContext::getInstance()->getAppName() . __DIR_SEPARATOR__ . 'configuration' . __DIR_SEPARATOR__ . 'configuration.xml');
$this->XMLConfig = new SimpleXMLElement($xml);
}
public static function getInstance()
{
if(is_null(self::$instance))
{
self::$instance = new self();
}
return self::$instance;
}
public function getValueOf($var)
{
$xml = $this->XMLConfig;
$arr = split('/', $var);
foreach($arr as $a)
{
if(!isset($xml->$a))
{
if(__DEBUG__)
$GLOBALS['logger']->info('[wConfig] No config found for ' . $var);
return null;
}
$xml = $xml->$a;
}
$res = $xml;
if(__DEBUG__)
$GLOBALS['logger']->info($res, '[wConfig] Looking for config ' . $var);
return $res;
}
}
?>
Dans le constructeur, on récupère le XML du fichier selon l’application courante (voir Presentation d’une classe Context dans un MVC PHP5 : wContext dans wMVC pour le contexte) :
Eexemple d’un fichier de configuration :
<configuration>
<site_params>
<lang>en</lang>
<nom>William DURAND - Web developer</nom>
<stylesheets>fixeIE.css,style.css</stylesheets>
<javascripts></javascripts>
</site_params>
...
</configuration>
Pour accéder au nom du site il suffit d’appeler la méthode getValueOf() et de lui passer l’élément de configuration : site_params/nom.
{
$xml = $this->XMLConfig;
$arr = split('/', $var);
foreach($arr as $a)
{
if(!isset($xml->$a))
{
if(__DEBUG__)
$GLOBALS['logger']->info('[wConfig] No config found for ' . $var);
return null;
}
$xml = $xml->$a;
}
$res = $xml;
if(__DEBUG__)
$GLOBALS['logger']->info($res, '[wConfig] Looking for config ' . $var);
return $res;
}
Cette méthode parcourt le fichier XML et renvoi la valeur que l’on souhaite s’il la trouve. Nous avons un objet de configuration accessible partout. C’est très simple et très pratique.

















