pl: PHP Oop Datenbank Klasse

Beitrag lesen

Tach!

ERRMODE::EXCEPTION ist auf jeden Fall eine gute Idee.

PDO::ERRMODE_EXCEPTION

Meine Idee wären Subklassen, DB::MySQL, DB::Oracle usw.

Themengebiet ist PHP. Bei der Schreibweise X::Y steht X für eine Klasse, Y für ein Mitglied dieser Klasse. Klassen können in PHP keine Mitglieder anderer Klassen sein. Wenn man kennzeichen möchte, dass DB und MySQL zusammenhängen, kann man das über Namspaces wie in DB\MySQL oder über eine Namenskonvention à la DB_MySQL tun.

Ja klar. In meinen PHP-Klassenhierarchien habe ich mich auch für den Unterstrich entschieden.

Und ja, man kann von PDO erben, es ist nicht als final gekennzeichnet.

Gut. Klassenentwurf beginnt mit der am weitesten unten liegenden Anwenderklasse (nach E.F. Johnson), z.B. mit PDO_MySQL_WebLog wobei die Klasse WebLog sämtliche Statements in Methoden kapselt, die für eine Log-Auswertung gebraucht werden. Der Anwender einer solchen Klasse hantiert also nicht mit Statements sondern mit Methoden, z.B.

$dbh->showlog(url => '/index.html', from => '1.1.2017', to => '12.10.2017');

was freilich auch mit PHP geht nur mit einem anderen Syntax. Das Ergebnis wird direkt an die Templating Engine übergeben die damit eine Tabelle in den Browser rendert.

Er kann jedoch auch eigene Statements in seiner Anwendung platzieren weil ja PDP_MySQL_WebLog von PDO_MySQL erbt und die DBSession somit eine public Eigenschaft in der eigenen Instanz ist.

So jedenfalls sehe ich die Ziele von DB-Klassen, stets offen für Erweiterungen. MfG