Guten Morgen,
nachdem ich hier schon eine Weile still und leise mitlese, wage ich mich jetzt mal selbst in den Haifischpool. Wenn ich mit meiner Frage im falschen Forum gelandet sein sollte, bitte ich um Entschuldigung - ich war mir nicht ganz sicher.
Sache ist die: Ich befasse mich zur Zeit mit dem MVC-Prinzip, und obwohl ich im Bereich Design Pattern wohl noch nicht viel mehr bin als ein ambitionierter Newbie, nimmt die Sache langsam Formen an. Da ich lernen möchte, wie MVC von Grund auf funktioniert, habe ich mich gegen jegliche Frameworks entschieden und bastele ein "Spielprojekt" von Grund auf selber. Ich habe einen wirklich sehr guten Draht zu meinem Hoster, und der gute Mann bringt mich ab und an auf (manchmal reichlich schräge) Ideen. Gestern hat er mir erzählt, daß er für irgendein Verwaltungstool nicht nur eine, sondern zwei Datenbankverbindungen einsetzt - eine zu Server A (zum Schreiben) und eine zu Server B (zum Lesen). Replikation erfolgt automatisch, Konsistenz ist also gewährleistet.
Seitdem grüble ich darüber, wie man sowas wohl in einem MVC-System umsetzt. Schreibende und lesende Queries zu trennen macht jetzt nicht so das Problem, aber wie instanziere ich am besten die DB-Objekte? Ich habe hin und her überlegt und bin bisher nur zu folgendem Schema gekommen:
Der PHP-Highlighter scheint Backslashes zu fressen - ich habe die Namespaces einfach weggelassen.
Wie falsch ist das jetzt? Und wenn's total daneben ist - wie geht's richtig? Ein paar Denkanstöße wären nett.
Danke im Voraus.
nachdem ich hier schon eine Weile still und leise mitlese, wage ich mich jetzt mal selbst in den Haifischpool. Wenn ich mit meiner Frage im falschen Forum gelandet sein sollte, bitte ich um Entschuldigung - ich war mir nicht ganz sicher.
Sache ist die: Ich befasse mich zur Zeit mit dem MVC-Prinzip, und obwohl ich im Bereich Design Pattern wohl noch nicht viel mehr bin als ein ambitionierter Newbie, nimmt die Sache langsam Formen an. Da ich lernen möchte, wie MVC von Grund auf funktioniert, habe ich mich gegen jegliche Frameworks entschieden und bastele ein "Spielprojekt" von Grund auf selber. Ich habe einen wirklich sehr guten Draht zu meinem Hoster, und der gute Mann bringt mich ab und an auf (manchmal reichlich schräge) Ideen. Gestern hat er mir erzählt, daß er für irgendein Verwaltungstool nicht nur eine, sondern zwei Datenbankverbindungen einsetzt - eine zu Server A (zum Schreiben) und eine zu Server B (zum Lesen). Replikation erfolgt automatisch, Konsistenz ist also gewährleistet.
Seitdem grüble ich darüber, wie man sowas wohl in einem MVC-System umsetzt. Schreibende und lesende Queries zu trennen macht jetzt nicht so das Problem, aber wie instanziere ich am besten die DB-Objekte? Ich habe hin und her überlegt und bin bisher nur zu folgendem Schema gekommen:
PHP-Code:
$foo = $registry->get('config')->settings['MYSQL_READ'];
$readDB = ReadingDatabase::getInstance($foo);
$bar = $registry->get('config')->settings['MYSQL_WRITE'];
$writeDB = WritingDatabase::getInstance($bar);
Wie falsch ist das jetzt? Und wenn's total daneben ist - wie geht's richtig? Ein paar Denkanstöße wären nett.
Danke im Voraus.
Kommentar