Hallo!
Datenbankzugriff ist etwas, was keinesfalls zentral gelagert gehört. Es ist ein Aspekt, der unter Umständen sehr flexibel gehandhabt werden muss, denn WELCHE Datenbank wird denn z.B. angesprochen? Und mit welcher Methode? Nur mal als Beispiele: MySQL oder Postgres? Oder MySQL via mysql, mysqli oder PDO-Extension ansprechen? Oder anstelle der relationalen Datenbank was völlig anderes?
Die Datenbank-Klasse ist abstrakt und die Klasse mit den entsprechenden Funktionen (MySQL, MySQLi etc.) wird geladen. Es ist also egal welche DB angesprochen wird, die Funktionsaufrufe bleiben gleich.
Ok, und noch ein Grund, warum eine DB-zugreifende Core-Klasse blöd ist: Der Controller hat keinerlei Veranlassung, auf die Datenbank zuzugreifen. Dafür hat er seine Models. Und die Models haben auch keine Veranlassung, die Datenbankzugriffe in sich selbst zu tragen, denn die sind dafür da, die in der DB gespeicherten Daten abzufragen (über eine DB-Klasse) und gegenüber dem Controller bzw. dem View passend zu repräsentieren.
Ok, das leuchtet mir ein. Ich schau mal, dass ich die DB-Klasse in meine Model-Klasse bringe und ob die Core-Klasse überhaupt nötig ist.
Gibt es denn auch Gründe _für_ eine Core-Klasse oder ist das allgemein eine schlechte Idee?
Uwe