Ok, d.h. der einzige Punkt wo wir zwei uns uneinig sind ist die Frage, ob man Defaults hinterlegen sollte oder auch auf der Entwicklermaschine eine Config-Datei voraussetzt :)
Die Antwort heißt: Kapselung. In Fakt weiß nur die Funktion $this->pdo('database_name');
wo die Zugangsdaten hinterlegt sind.
Und natürlich hast Du recht, mit Defaults kann man auffe Fresse fliegen wenn auf der PROD-Maschine die Config-Datei fehlt. Fliegen tut man allerdings auf jeden Fall, egal ob man irrtümlich Defaults verwendet oder die Config-Datei nicht da ist. Denn Entwicklermaschinen-Defaults sollten schon so gestaltet sein, dass sie auf der PROD-Maschine zu laut rasselnden Fehlermeldungen führen (eine von diesen: DB-Server nicht erreichbar, DB existiert nicht, DB-Passwort falsch). Es wäre schon fatal, wenn die Entwickler-Config auf der Prod-Maschine funktionierte.
Man könnte die Methode $this->pdo('database_name');
so intelligent machen, dass sie den Namen des Hosts kennt auf dem sie aufgerufen wird. Btw., vor ein paar Jahren hab ich mal eine proprietäre Versionskontrolle fürs DB-Design pogrammiert. In die Fehlerbehandlung einbezogen, konnte ohne Umschweife festgestellt werden, ob ein Syntaxfehler vorliegt oder ein Versionskonflikt.
mfg