|
Comment faîtes vous vos fichiers de configuration ?
|
| Auteur |
Message |
LexLxUs
Membre
Messages : 2,490
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 0
|
Comment faîtes vous vos fichiers de configuration ?
Bonjour à tous 
Nombre d'entre vous connait SimpleXML, certains l'utilisent même. Le débat tourne autour de la gestion de fichiers de configuration en utilisant XML ou la bonne vieille méthode de fichiers texte.
Pour ma part, je préfère utiliser les fichiers textes - via une classe.
J'attends de voir pour que l'on me convainc que je fais fausse route à être vieux jeu 
~L~
Ce message a été modifié le: 09-09-2008 10:39 AM par Sephi-Chan.
|
|
| 11-14-2007 04:34 PM |
|
 |
naholyr
Modérateur Programmation
    
Messages : 861
Groupe : Modérateur
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 18
|
RE: Configuration via XML ou êtes vous vieux jeu ?
J'utilise personnellement le YaML que j'ai découvert avec Symfony, c'est un langage de config qui a les mêmes atouts que XML (c'est à dire traduire un tableau associatif), mais qui est *réellement* lisible par un humain.
Exemple
app:
module:
variable: value
variable2: { option1: value, option2: value }
variable3:
- element1
- element2
module2: { variable: value }
Note valable aussi pour le XML : pour des raisons de performances c'est mieux si c'est «compilé» à la volée en PHP pour les accès ultérieurs.
Ressources [PHP][MySQL][ prototype.js]
Projet Dei - Le jeu [Statut=Conception]
naholyr@jabber.fr
Ce message a été modifié le: 11-14-2007 05:31 PM par naholyr.
|
|
| 11-14-2007 05:20 PM |
|
 |
Sephi-Chan
Administrateur
      
Messages : 4,284
Groupe : Administrateur
Inscription : Aug 2006
Statut :
Hors ligne
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Il est plus élégant d'avoir un fichier tel que :
<?xml version="1.0" encoding="UTF-8"?> <configuration> <database> <name value="nomdelabase" /> <password value="ae35fdfdf" /> <host value="nomdelabase" /> <username value="blablabla" /> </database> <site> <title value="Seelies" /> </site> </configuration>
J'éditerai le côté SimpleXML une fois chez moi.
Sephi-Chan
|
|
| 11-14-2007 05:26 PM |
|
 |
LexLxUs
Membre
Messages : 2,490
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 0
|
RE: Configuration via XML ou êtes vous vieux jeu ?
YaML est natif dans le noyau PHP comme SimpleXML ?
~L~
|
|
| 11-14-2007 05:29 PM |
|
 |
naholyr
Modérateur Programmation
    
Messages : 861
Groupe : Modérateur
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 18
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Il y a une extension PHP qui permet de le gérer, et si on n'a pas la possibilité d'activer cette extension, il y a une classé (j'ai oublié les noms).
Mais comme il faut de toute façon passer par une phase d'interprétation ce sera des ressources gachées dans un cas comme dans l'autre. Donc du moment qu'à la première lecture on transforme ça en tableau PHP pour ne pas avoir à refaire l'interprétation, les deux donneront le même résultat.
Enfin, la notion d'élégance est extrèmement subjective
Ressources [PHP][MySQL][ prototype.js]
Projet Dei - Le jeu [Statut=Conception]
naholyr@jabber.fr
Ce message a été modifié le: 11-14-2007 05:34 PM par naholyr.
|
|
| 11-14-2007 05:34 PM |
|
 |
LexLxUs
Membre
Messages : 2,490
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 0
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Pour la notion d'élégance, j'lui ai déjà dit que ça va pas me convaincre 
Si pour YaML il faut une extension ou un classe - suivant les autorisations - je préfère encore manipuler les fichiers :-°
Là aussi j'ai une classe, mais plutôt genre `set de fonctions` et pas bien grosse ..
~L~
|
|
| 11-14-2007 05:39 PM |
|
 |
X-ZoD
Membre
Messages : 600
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 16
|
RE: Configuration via XML ou êtes vous vieux jeu ?
moi ya un truc kie turlupine ... pkoi xml et pas sql ?
sauf les cas ou on a pas le choix
|
|
| 11-14-2007 05:50 PM |
|
 |
naholyr
Modérateur Programmation
    
Messages : 861
Groupe : Modérateur
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 18
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Les options de configuration statiques du projet (genre "combien de jours avant suppression des inscriptions non validées", "durée de vie des cookies", "langue par défaut", etc...) doivent plutôt être mises dans des fichiers de config, histoire de s'épargner une requête tout-à-fait inutile puisqu'il n'y aura jamais aucun changement.
Maintenant on a en gros 5 choix, que j'ai placé dans l'ordre décroissant de préférence personnelle :
- Utiliser des fichiers YaML.
Inconvénients : ça nécessite l'utilisation d'une extension ou d'une classe tierce pour le parsing, tatillon sur l'indentation.
Avantages : léger, très lisible, souple, et en plus c'est "hype" (à la mode) avec Ruby et dire qu'on utilise du YaML fait très bien dans les diners mondains.
- Utiliser des fichiers INI.
Inconvénients : on a une arborescence limitée à 2 niveaux.
Avantages : syntaxe très simple et facilement lisible, format largement répandu, lecture aisée avec une fonction standard de PHP (depuis la v4).
- Utiliser des tableaux PHP.
Inconvénients : c'est du PHP avec les possibilités de plantage en cas de syntax error que cela comporte.
Avantages : c'est la solution la plus rapide, c'est lisible pour peu qu'on indente correctement son tableau, on peut mettre des expressions et ça c'est très pratique (par exemple 'cookie_lifetime' => 3600*24, // 24h).
- Utiliser des fichiers XML.
Inconvénients : verbeux donc lourd, tatillon sur la syntaxe et les encodages, difficilement lisible tel quel.
Avantage : SimpleXML est une extension maintenant standard de PHP.
- Utiliser un format maison.
Inconvénients : ça nécessite le développement des fonctions de gestion de ce format (avec toutes les possibilités de bug que cela comporte), c'est forcément la méthode la plus lente, le format sera souvent limité à un seul niveau d'arborescence.
Avantages : affectif (c'est mon format, je l'aime et de toute façon vous comprenez rien ), maîtrise totale du format.
La pire solution c'est le format maison. Pourquoi ? Parce que comme toujours c'est réinventer la roue, et je sais pas vous mais moi toutes les roues que j'ai bricolées dans mon garage elles roulaient moins bien que celles qui ont été faites par des pros.
Les autres solutions c'est vraiment une question de préférence, de goût personnel. J'ai un faible pour le YaML pour sa lisibilité, mais a priori toutes ces solutions se valent. En revanche toutes ces solutions *doivent* passer par une mise en cache d'une version compilée en tableau PHP pour ne pas faire mourir les performances (sauf bien sûr si on travaille avec des tableaux PHP directement).
Ressources [PHP][MySQL][ prototype.js]
Projet Dei - Le jeu [Statut=Conception]
naholyr@jabber.fr
Ce message a été modifié le: 11-14-2007 06:57 PM par naholyr.
|
|
| 11-14-2007 06:52 PM |
|
 |
LexLxUs
Membre
Messages : 2,490
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 0
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Cool ça ! Moi, j'marche au .ini tant que c'est suffisant. Je pense que si j'ai plus de 2 niveaux .. Faudra que j'y réfléchisse en fait 
Merci pour les détails, ça me conforte dans ma position finalement 
~L~
|
|
| 11-14-2007 08:39 PM |
|
 |
naholyr
Modérateur Programmation
    
Messages : 861
Groupe : Modérateur
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 18
|
RE: Configuration via XML ou êtes vous vieux jeu ?
Au fait la fonction en question c'est parse_ini_file()
Ressources [PHP][MySQL][ prototype.js]
Projet Dei - Le jeu [Statut=Conception]
naholyr@jabber.fr
|
|
| 11-14-2007 10:07 PM |
|
 |
|
|