Mysql
 sql >> Base de données >  >> RDS >> Mysql

La meilleure façon de stocker les paramètres d'une application PHP ?

Pour un seul petit site simple, je placerais simplement la configuration dans un fichier PHP. Rester simple. PHP n'analyse probablement rien plus vite qu'il n'analyse PHP. Si vous utilisez APC, le bytecode compilé est même mis en cache - bien que le bytecode soit ensuite ré-exécuté pour chaque requête. Pour un petit fichier de configuration, cette exécution de bytecode devrait prendre très peu de temps; pour un fichier très volumineux, cela peut prendre un peu plus de temps.

Pour les sites à fort trafic avec de grandes configurations, la mise en cache de vos données de configuration dans APC (par exemple, en tant que tableau unique) est une bonne idée - à tout le moins, vous économisez la surcharge de l'exécution les déclarations dans votre fichier config.php. Notamment, facebook le fait. Lorsque vous traitez de nombreuses requêtes par seconde, il est hors de question d'appuyer sur le disque pour lire un fichier de configuration (en utilisant parse_ini_file, un analyseur XML, etc.) à chaque requête.

Pour mon projet actuel, nous hébergeons de nombreux sites, chacun avec sa propre configuration. Chaque site avait à la fois une base de données et un fichier de configuration ; cependant, s'assurer que vous utilisez toujours le bon fichier de configuration avec la bonne base de données peut devenir un casse-tête. De plus, les changements nécessiteraient de changer les choses à deux endroits - la base de données et la configuration. Oublier l'un ou l'autre causait toujours des problèmes, et cela arrivait beaucoup trop souvent.

Nous avons déplacé la configuration dans la base de données, de sorte que vous ne puissiez pas séparer une base de données de sa configuration correcte, et toute modification du code nécessite uniquement la mise à jour de la base de données. Les données de la table de configuration sont également mises en cache de manière agressive dans APC, nous les interrogeons donc rarement.

Donc, pour récapituler :

  1. Petit site :utilisez simplement un fichier config.php
  2. Site très volumineux :cache dans APC
  3. Plusieurs sites  :stocker la configuration dans la base de données pour réduire les frais généraux d'administration ; cache dans APC pour réduire les accès à la base de données