Also ich bin mir recht sicher, dass ich verstanden habe was du meinst. Das wird' dir aber jetzt nicht gefallen... Dein Datenbankkonzept ist in der Hinsicht einfach nicht dafür zu gebrauchen. Ich sag' dir mal wie ich (und viele andere, vielleicht auch alcaeus
) das machen:
- jede Tabelle der Datenbank entspricht einer Klasse
- diese Klassen sind alle abgeleitet von einer gemeinsamen Tabellen-Klasse
- diese Eltern-Klasse bietet Funktionen wie UPDATE usw. an
- so könnte man das dann benutzen:
PHP-Quellcode:
$user = new User();
$user->passsword = md5( /*...*/ );
$user->name = $name;
$user->save();
Um SELECTs zu machen gibt es verschiedene Möglichkeiten. Darunter zum Beispiel, dass man dieser Eltern-Klasse ein Attribut (z.B. "objects") gibt, oder auch direkt einfache Methoden. So kann man das benutzen:
PHP-Quellcode:
$users = new User()->objects->all();
foreach ($users as $user) { /* ... */ }
Eine Klasse bzw. Tabelle definiert sich dann beispielsweise durch sowas hier:
PHP-Quellcode:
class User extends BaseTable
{
public function getFields()
{
return array(
"name" => new VarChar(255),
"password" => new VarChar(32)
);
}
}
Das ist alles nur beispielsweise und auch nur ungefähr. Vieles davon kann man ändern. So ist der Weg, den ich kennen gelernt habe und zu schätzen weiß. Im Vergleich zu den vielen, recht simple gehaltenen Anwendungen, kann man das auch durchauss als "professionell" bezeichnen.
Fertige Implementationen von Ähnlichem (!) sind zum Beispiel
Doctrine oder das
Zend Framework. Ich persönliche bin total verliebt (
) in
Django (Python) und leite von deren Strukturen auch vieles auf meine PHP-Apps ab.
Hoffe ich konnte dir damit helfen. PHP ist nicht so schlimm wie du immer denkst. Du machst es nur schlimm... PHP hat viele Nachteile, das kann man nicht abstreiten. Aber das sind
nicht die, die du immer nennst. Schlechtes Design, inkonsequente APIs und unlogisches Verhalten definieren sich an ganz anderen Stellen in PHP. Aber auch damit lernt man umzugehen.
Liebe Grüße,
Valle