2010-02-14 12 views
2

Je développe une application PHP dans laquelle je dois stocker des variables de configuration. L'utilisation de MySQL serait exagérée, car c'est une application CLI dont je parle et il n'y a que quelques variables de configuration.Utilisation de SQLite pour la gestion de la configuration

Je ne connais pas les fichiers INI ... Je pense utiliser SQLite.

Qu'en pensez-vous? Il est trop exagéré en utilisant SQLite? Suggérez-vous d'utiliser d'autres approches?

Répondre

1

Cela dépend vraiment de la taille de vos fichiers de configuration et du nombre de fichiers que vous allez stocker.

PHP gère assez bien les fichiers ini et il semble être un choix populaire parmi les frameworks PHP.

D'autres approches populaires:

  • XML
  • YAML
  • fichiers contenant JSON
+0

Évitez yaml; tout ce qui l'analyse est soit un module externe soit est implémenté en PHP lui-même (et a des performances horribles). ini, json et xml sont nativement supportés et ne portent pas un hit de perf – damianb

1

Pour les valeurs de configuration je vous suggère d'utiliser des fichiers INI et gérer avec parse_ini_file fonction qui est beaucoup plus facile que le recours à SQLlite.

+0

Je veux aussi écrire dans les fichiers de configuration. J'ai vu beaucoup de méthode pour lire tout le fichier de configuration, le manipuler et écraser tout le fichier de configuration. Je pense que ce n'est pas très efficace – feketegy

+0

@feketegy - À quelle fréquence écrivez-vous dans ces fichiers de configuration? Je doute que l'efficacité ait de l'importance. –

+0

Très souvent. Je dois suivre les temps de mise à jour dans ces fichiers. Ce php CLI sera lié à un job cron et exécuté toutes les 5 minutes – feketegy

1

Considérez sérialisation/désérialisation un tableau pour les petits paramètres de configuration:

<?php 
# create settings array 
$settings = array(
    'setting1' => 'on', 
    'setting2' => 'off', 
    'setting3' => true, 
); 
# save it 
$filename = 'settings.txt'; 
file_put_contents($filename,serialize($settings)); 


# retrieve it 
$getSettings = unserialize(file_get_contents($filename)); 

    # modify it 
    $getSettings['addedLater'] = 'new value'; 

    # save it again. 
    file_put_contents($filename,serialize($getSettings)); 

    # rise and repeat 
?>