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