2011-10-14 10 views
3

Je suis sur le point de commencer à écrire un site en PHP en utilisant MySQL comme back-end. L'une des premières décisions que je dois prendre est de stocker les paramètres du site dans une table de base de données ou dans un fichier XML. J'ai pensé à les stocker en tant que paires clé/valeur, quel que soit le stockage que j'utilise. C'est probablement le moyen le plus flexible et le meilleur pour le faire. Comme les deux façons sont relativement simples à mettre en œuvre et à utiliser, mes soucis concernent la performance. Lequel est le plus rapide? Lequel dois-je utiliser? Pourquoi ? PS: Dans quelle mesure serait-il facile de stocker les paramètres dans un fichier .ini? Peuvent-ils être facilement modifiés par un script PHP plutôt que manuellement par l'utilisateur/sysadmin?Table XML ou Base de données pour stocker les paramètres

De plus, si je stocke les paramètres dans une table mysql, le sysadmin peut facilement mettre en cache cette (très petite) table dans la RAM. Peut-il faire ça avec un fichier XML?

+0

suggestion: si vous avez des détails/questions supplémentaires. Modifier votre message, n'ajoutez pas de commentaires –

+0

Correction, merci pour votre suggestion. Type de nouveau sur ce site ... –

+0

Alternative: YAML –

Répondre

1

Je suppose que la configuration est par utilisateur. Tout d'abord je vous suggère d'écrire une classe wrapper qui va accéder à la configuration. De cette façon, vous ne pouvez modifier le noyau de la configuration que dans une classe et pas dans tout le code.

class configuration { 
    public function get_user_configuration() { 
    // return users configuration 
    } 
} 

Je pense qu'il serait plus facile de stocker la configuration dans la base de données. Car alors la configuration sera probablement sauvegardée quotidiennement et pourra être facilement exportée.

La mise en cache de cette configuration est une bonne idée. Le plus simple serait de le mettre en cache en session. Vous pouvez également essayer memcache ou APC.

+0

La configuration n'est pas par utilisateur, c'est paramètres du site (choses comme max nr d'utilisateurs, enregistrement ouvert/fermé, dons acceptés ou non, etc.). L'idée avec une classe d'accéder et/ou de modifier les paramètres est très bonne, merci. –

1

Dans tous les cas, il est logique de l'enregistrer dans la base de données. Vous pouvez toujours le mettre en cache dans un fichier (XML) lorsque les paramètres ont changé si vous le souhaitez et charger ce fichier à la place. Ainsi, l'application n'interrogera jamais la base de données pour les paramètres.

Questions connexes