Nun, das hängt von der Struktur Ihrer Anwendung ab. Wenn Sie bei einer bestimmten Seitenlast nur eine oder zwei von mehreren hundert Variablen benötigen, können Benchmark-Tests zeigen, dass die Abfrage der Datenbank möglicherweise schneller ist als eine umfangreiche Konfigurationsdatei. Sie müssen jedoch vorsichtig sein, wenn Sie Ihre Datenbank mit zu vielen Abfragen jedes Mal neu belegen, wenn der Benutzer etwas unternehmen möchte. Caching kann den Overhead reduzieren, der durch redundante Anforderungen hinzugefügt wird, aber das ist der Umfang seiner Verwendung.
Wenn diese Variablen meist kurze Strings oder boolesche Flags sind, dann denke ich, dass Ihre Antwort weitgehend darauf beruht, was Sie gut beibehalten können. Eine gut strukturierte INI-Datei wäre einfacher zu pflegen als eine große Datenbank, wenn sich diese Variablen selten ändern und immer von Hand geändert werden. Wenn sich diese Variablen ständig und niemals von Hand ändern, ist es wahrscheinlich klüger, alle Variablen in eine Datenbank zu laden.
Persönlich habe ich mich in beiden Situationen gefunden, und ich habe beide Methoden entsprechend verwendet. Wenn Sie wirklich unentschlossen sind, können Sie immer nur einige Benchmark-Tests durchführen. Laden Sie eine Seite, die Konfigurationsinformationen aus der Datenbank abruft, und laden Sie dann eine Seite mit einer INI-Datei (oder einer .php-Datei mit define()
s).
(Und pedantisch gesprochen, define()
schafft Konstanten im globalen Bereich, nicht globale Variablen.)
Wenn Sie so viele globale Variablen verwenden, die Sie das Bedürfnis verspüren, diese Frage zu stellen, gibt es eine gute Chance, dass Sie Ihren Code durch Refactoring verbessern könnten. – EBGreen
Welche Art von Daten speichern Sie in Konstanten? Konfigurationsoptionen? Etwas sagt mir, dass Sie nicht objektorientierten Code schreiben, was manchmal ok ist, aber es gibt eine Menge Macht, wenn Dinge in Objekten sind, die miteinander in Beziehung stehen. Die Tatsache, dass Sie Konstanten verwenden, bestätigt dies. – yaauie