Méthodes pour configurer ou paramétrer une application php

2 views
Skip to first unread message

Nicolas Thouvenin

unread,
Jan 17, 2007, 6:00:23 AM1/17/07
to px...@googlegroups.com
Toutes applications possèdent des paramètres (au moins un quand même ;-)).
Ces paramètres peuvent être stockés à divers endroit (fichier ini,
fichier xml, fichier php, etc...), mais au final ils doivent être
accessibles partout à l'intérieur du code de l'application.

Pour résoudre ce besoin plusieurs méthodes existes. La plus simple
consiste à définir des variables globales :

$GLOBALS['paramètre_un'] = 'une valeur';
$GLOBALS['paramètre_deux'] = 'une autre valeur';

Cette solution est effectivement simple mais tout développeur un peu
expérimenté conviendra que l'utilisation des variables globales est à
proscrire.
On peut améliorer les choses en regroupant les paramètres dans un
tableau global.

$GLOBALS['configuration']['parametre_un'] = 'une valeur';
$GLOBALS['configuration']['parametre_deux'] = 'une autre valeur';


On peut aussi utiliser des constantes :

define('parametre_un', 'une valeur');
define('parametre_deux', 'une autre valeur');

L'utilisation de constantes peut paraitre plus propre, mais au final
c'est exactement la même chose que d'utiliser des variables globales
avec en plus la limitation du type de valeur (par exemple une
constante n'accepte pas de tableau) .

On peut aussi utiliser Pxxo qui propose une solution que me semble
plus élégante à l'aide de la classe Pxxo_Config.

Jugez plutôt :

// On définit un classe qui hérite de Pxxo_Config
// dans laquelle est spécifie les paramètres nécessaire à l'application.

require_once 'Pxxo/Config.php';
class Ma_Super_Config extends Pxxo_Config
{
var $parametre_un;
var $parametre_deux;
}

// On crée cette classe, on affecte des valeurs aux paramètres et on
enregistre
// la classe pour quelle devient LA classe de configuration pour toute
l'application

$config = new Ma_Super_Config;
$config->parametre_un = 'une valeur';
$config->parametre_deux = 'une autre valeur';
$config->register();


// Enfin, pour accéder aux valeurs des paramètres de configuration
// on utilise une méthode statique

echo Pxxo_Config::get('parametre_un');
echo Pxxo_Config::get('parametre_deux');

Stéphane Gully

unread,
Jan 17, 2007, 6:06:16 AM1/17/07
to px...@googlegroups.com
> // Enfin, pour accéder aux valeurs des paramètres de configuration
> // on utilise une méthode statique
>
> echo Pxxo_Config::get('parametre_un');
> echo Pxxo_Config::get('parametre_deux');

Je pense que tu voulais plutôt écrire :
echo Ma_Super_Config::get('parametre_un');
echo Ma_Super_Config::get('parametre_deux');

Nicolas Thouvenin

unread,
Jan 17, 2007, 6:13:37 AM1/17/07
to px...@googlegroups.com
2007/1/17, Stéphane Gully <stephan...@gmail.com>:

> > echo Pxxo_Config::get('parametre_un');
> > echo Pxxo_Config::get('parametre_deux');
>
> Je pense que tu voulais plutôt écrire :
> echo Ma_Super_Config::get('parametre_un');
> echo Ma_Super_Config::get('parametre_deux');
>

Oui, mais les deux types d'appel fonctionnent (je viens de vérifier)

Reply all
Reply to author
Forward
0 new messages