Hallo!
Also ich habe die Core-Klasse komplett entfernt und instanziere die Datenbank-Klasse nun in der Model-Klasse von der alle anderen Models abgeleitet werden. Ich habe also nur noch Datenbankzugriff für die Models.
Du hast also sowas: [..]
Ja.
Da würde ich auch erstmal "suboptimal" rufen wollen.
Ich hab es fast geahnt ^^
Insofern: Du brauchst keine DB-Unabhängigkeit, du entscheidest dich am Anfang für eine existierende Datenbank und benutzt die.
Ok, getan.
Ein Interface wäre an dieser Stelle als Alternative für eine abstrakte, codelose Klasse eindeutig vorzuziehen. Und (das ist das I von SOLID) eine Klasse kann mehr als ein Interface implementieren, es ist also möglich und angeraten, keine Mega-Interfaces zu schreiben, sondern für die jeweils beabsichtigten Funktionen ein möglichst kleines Interface vorzusehen.
Du meinst also ich sollte ein Datenbank-Interface schreiben?
Ich muss gestehen, dass mir nicht ganz klar ist wozu Interfaces in PHP gut sind. Für mich sieht es so aus, als ob sie nur Funktionsnamen bereit stellen. Das erscheint mir aber überflüssig weil ich die Funktionen eh schreiben muss, das Interface also auch weglassen könnte.
Als gute Ideengeber würde ich mal die Interfaces der SPL nennen: ArrayAccess definiert vier Methoden, Iterator definiert fünf, und Countable sogar nur eine einzige. Die Kombination aller drei Interfaces erlaubt es, dass ein Objekt sich vollkommen wie ein Array verhalten kann, man aber volle Kontrolle über den Zugriff auf die internen Daten behält.
Siehe oben, mir ist nicht ganz klar wozu man da ein Interface braucht.
Deine Ausführung zu Tests muss ich mir nochmal durchden Kopf gehen lasse. Ich habe nicht ganz verstanden was du mir damit sagen wolltest.
Uwe