JeuWeb - Crée ton jeu par navigateur
Comment faîtes vous vos fichiers de configuration ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comment faîtes vous vos fichiers de configuration ? (/showthread.php?tid=2015)

Pages : 1 2 3


Comment faîtes vous vos fichiers de configuration ? - Plume - 14-11-2007

Bonjour à tous Smile

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 Big Grin

~L~


RE: Configuration via XML ou êtes vous vieux jeu ? - naholyr - 14-11-2007

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
Code :
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.


RE: Configuration via XML ou êtes vous vieux jeu ? - Sephi-Chan - 14-11-2007




RE: Configuration via XML ou êtes vous vieux jeu ? - Plume - 14-11-2007

YaML est natif dans le noyau PHP comme SimpleXML ?

~L~


RE: Configuration via XML ou êtes vous vieux jeu ? - naholyr - 14-11-2007

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 Wink


RE: Configuration via XML ou êtes vous vieux jeu ? - Plume - 14-11-2007

Pour la notion d'élégance, j'lui ai déjà dit que ça va pas me convaincre Big Grin

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~


RE: Configuration via XML ou êtes vous vieux jeu ? - X-ZoD - 14-11-2007

moi ya un truc kie turlupine ... pkoi xml et pas sql ?
sauf les cas ou on a pas le choix


RE: Configuration via XML ou êtes vous vieux jeu ? - naholyr - 14-11-2007

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).


RE: Configuration via XML ou êtes vous vieux jeu ? - Plume - 14-11-2007

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 Smile
Merci pour les détails, ça me conforte dans ma position finalement Smile

~L~


RE: Configuration via XML ou êtes vous vieux jeu ? - naholyr - 14-11-2007

Au fait la fonction en question c'est parse_ini_file()