$ settings array oder Config Class zum Speichern von Projekteinstellungen?

8

Wie soll ich Einstellungen für ein Projekt speichern?

Was ist besser - ein Array $settings mit all meinen Einstellungen zu verwenden:

%Vor%

oder erstellen Sie eine Singleton Config -Klasse mit allen Einstellungen darin?

%Vor%

Irgendwelche guten Beispiele?

    
ideea 17.07.2010, 07:40
quelle

7 Antworten

11

Ich denke, es ist am besten, Konstanten für die Konfiguration zu verwenden. Zum Beispiel mit Klassenkonstanten:

%Vor%

Wenn Sie PHP 5.3 haben, können Sie diese auch als globale Konstanten definieren:

%Vor%

Aber ich denke, das ist weit weniger sauber und geradlinig.

Offensichtlich funktioniert das nur so lange, wie Sie nur Konstanten, d. h. skalare, nicht-Ausdruckswerte speichern. Wenn Ihre Konfiguration beispielsweise Arrays enthält, wird dies nicht mehr funktionieren. In diesem Fall würde ich eine Config-Klasse mit öffentlichen statischen Eigenschaften verwenden:

%Vor%

Letzteres ist dem $config -Array-Ansatz sehr ähnlich, hat aber den Vorteil (oder kann dies ein Nachteil sein?), dass die Klasse von überall her einschließlich Funktionen und Klassen zugänglich ist, während das Array nur im globalen Zugriff verfügbar ist Leerzeichen, es sei denn, Sie importieren es in Funktionen / Klassen mit global $config; .

    
NikiC 17.07.2010 08:40
quelle
2

Entweder wird gut funktionieren, tun Sie das, was Sie am wohlsten fühlen.

    
Toby Allen 17.07.2010 08:16
quelle
1

Am besten speichern Sie Ihre Einstellungen in einer Datei. und um diese Datei zu manipulieren, deklariere eine Klasse, die Operationen für Datei

ausführt     
Sagar Varpe 17.07.2010 07:42
quelle
1

Wenn Sie sich für den Array-Ansatz entscheiden, könnten Sie Array-Literale für etwas besser lesbaren Code verwenden:

%Vor%     
Eric 17.07.2010 09:35
quelle
1

Meine zwei Cent: Verwenden Sie beide. Die meisten Anwendungskonfigurationseinstellungen gehören zu einer globalen Array-Variablen. Auf Konfigurationsdaten muss von verschiedenen Anwendungsteilen aus zugegriffen werden können, und dafür stehen globale Variablen. Und es ist am sinnvollsten, alles in einem Array zusammen zu halten. Ein Array kann erweitert werden, z.B. einige Optionen in einer config.php und der Rest zum Beispiel aus einer config.ini gelesen.

Aber es gibt auch einen Platz für KONSTANTEN. Die feine zu zeichnende Linie ist, wenn eine Option wirklich etwas ist, das sich während der Laufzeit der Anwendung ändern könnte, oder wenn es sich eher um einen festen / magischen Wert handelt. Wenn einmal eingerichtet, sollten Sie eine Anwendung Einstellung nicht ändern (oder Rendering möglicherweise fehlschlagen), dann sollte diese Option nicht im Array sein, aber semantisch als Konstante festgelegt. (Das ist eine interpretative Faustregel, aber diente mir gut.)

    
mario 17.07.2010 13:18
quelle
0

Wenn die Projekteinstellungen zu schwer sind, ist die Datei (xml ist besser) gut und eine dedizierte Klasse für Einstellungen ist auch gut.

Wenn die Projekteinstellungen klein sind, ist das Array am besten, es ist sehr schnell und es wird kein I / O-Problem auftreten.

Auch Sie können Datenbank (langsamer und Auth-Problem) verwenden.

    
Sadat 17.07.2010 07:47
quelle
0

Ich neige dazu, Konfigurationswerte zu setzen, auf die nur global in einem Konfigurationsarray zugegriffen wird, und Werte zu definieren, auf die überall zugegriffen wird. Zum Beispiel:

inc / config.php

%Vor%

inc / init.php

%Vor%

somefile.php

%Vor%

Denken Sie daran, dieses Beispiel ist abgespeckt, um eine Idee zu demonstrieren.

    
J.Money 08.10.2012 19:26
quelle

Tags und Links