2010-11-18 7 views
5

Ich schreibe meine erste grundlegende nackten Knochen MVC-Muster in PHP eingerichtet. Ich weiß, dass globale Variablen schlecht sind, und ich weiß auch, dass ich nicht möchte, dass alle meine Klassen Zugriff auf alle meine Konfigurationsvariablen haben.Korrekter Weg zur Handhabung von Konfigurationsvariablen in MVC-Setup (PHP)

Ich habe eine Datei settings.php, die ich eine Reihe von Konstanten in, wie meine DB-Verbindungsinformationen, Verzeichnisstrukturinformationen, E-Mail-Adressen und so weiter definieren möchte. Es wird ein zentraler Ort sein, der alle meine wichtigen Informationen enthält.

Was ist der beste Weg, um eine Config-Klasse zu implementieren, so dass jede meiner Basisklassen für meine Controller und Modell nur Zugriff auf die Config Vars haben, die sie benötigen? Zum Beispiel sollte meine Modell-Basisklasse Zugriff auf db-Verbindungsinformationen haben.

Im Grunde frage ich nur, wie jemand ganz rollt ihre eigene MVC-Setup-Konfigurationsinformationen verarbeitet, ohne globale Variablen zu deklarieren, wie wir in den prozeduralen Tagen zurück.

Danke.

+0

Es heißt PMVC. Die globale Variable, die meme vermeidet, ist auch etwas unsinnig, wenn sie übergeneralisiert wird. – mario

+0

Ah Mann keine guten Antworten :( –

Antwort

0

Ich rollte mein eigenes MVC-Setup. (Immer noch stark. Könnte Open Source es). Die Art, wie ich es mache, ist ein Init-Skript, das all diese Konstanten an eine kontrollierende Klasse übergibt.

Die steuernde Klasse ist ein Singleton. Wenn also eine andere Klasse Zugriff darauf benötigt, wird nur die vorhandene Instanz der steuernden Klasse abgerufen, und alle Variablen sind von ihr verfügbar.

2

Sie werden eine Reihe von Antworten auf diese erhalten, da es im Grunde auf Präferenz läuft.

Persönlich verwendete ich ein Config-Array. Beispiel:

$conf['db']['username'] = "username"; 
$conf['db']['password'] = "password"; 

Dann pass einfach byRef die Teile, die du brauchst, wohin sie gehen müssen.

Verwandte Themen