Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der beste Weg, um die Einstellungen einer PHP-App zu speichern?

Für eine einzelne, kleine, einfache Site würde ich einfach die Konfiguration in eine PHP-Datei einfügen. Halte es einfach. PHP parst wahrscheinlich nichts schneller als PHP. Wenn Sie APC verwenden, wird der kompilierte Bytecode sogar zwischengespeichert – obwohl der Bytecode dann für jede Anfrage erneut ausgeführt wird. Bei einer kleinen Konfigurationsdatei sollte diese Bytecode-Ausführung sehr wenig Zeit in Anspruch nehmen; Bei einer sehr großen Datei kann es etwas länger dauern.

Für stark frequentierte Sites mit großen Konfigurationen ist es eine gute Idee, Ihre Konfigurationsdaten in APC (z. B. als einzelnes Array) zwischenzuspeichern – zumindest sparen Sie den Aufwand für die tatsächliche Ausführung die Anweisungen in Ihrer config.php-Datei. Insbesondere Facebook tut dies. Wenn Sie viele Anfragen pro Sekunde bedienen, kommt es nicht in Frage, bei jeder Anfrage auf die Festplatte zu gehen, um eine Konfigurationsdatei (mit parse_ini_file, einem XML-Parser usw.) zu lesen.

Für mein aktuelles Projekt hosten wir viele Sites, jede mit ihrer eigenen Konfiguration. Jede Seite hatte sowohl eine Datenbank als auch eine Konfigurationsdatei; Es kann jedoch zu Kopfschmerzen führen, sicherzustellen, dass Sie immer die richtige Konfigurationsdatei mit der richtigen Datenbank verwenden. Außerdem würden Änderungen Änderungen an zwei Stellen erfordern – der db und der config. Das eine oder andere zu vergessen, verursachte immer Probleme und kam viel zu häufig vor.

Wir haben die Konfiguration in die Datenbank verschoben, sodass Sie unmöglich eine Datenbank von ihrer korrekten Konfiguration trennen können, und alle Codeänderungen nur eine Aktualisierung der Datenbank erfordern. Die Daten aus der Konfigurationstabelle werden auch aggressiv in APC zwischengespeichert, sodass wir sie selten abfragen.

Also, um es noch einmal zusammenzufassen:

  1. Kleine Website :Verwenden Sie einfach eine config.php-Datei
  2. Sehr große Website :Cache in APC
  3. Mehrere Websites :Speichern Sie die Konfiguration in der Datenbank, um den Verwaltungsaufwand zu reduzieren; Cache in APC, um Datenbankzugriffe zu reduzieren