Mailinglisten-Archive |
Seong-Min Kang schrieb:
>
> public function __call($name, $args)
> {
> // musst du noch implementieren
> $val = PFunctions::decamelize(substr($name, 3));
> if (!in_array($val, $this->_cols))
> return false;
> if (substr($name, 0, 3) == 'set') {
> $this->$val = $args[0];
> return true;
> } elseif (substr($name, 0, 3) == 'get') {
> return $this->$val;
> }
> return false;
> }
so hab ich das auch, automatisch alle getVar() und setVar() Aufrufe abfange
und die 'Var' setzen
> [...]
>
> class Kunde extends OneMap
> {
> protected $id;
> protected $first_name;
>
> public function __construct($data = false)
> {
> parent::__construct($data);
> }
> }
das habe ich dann allerdings anders, ich habe nicht für jede Spalte eine
eigene Eigenschaft, sondern lege die einfach in einem Array ab
das macht aber schon die Basisklasse, die Basisklasse überprüft auch ob
überhaupt was geändert wurde wenn gespeichert werden soll und baut das SQL
zusammen, sie übernimmt auch die Variablenüberprüfung (z. B. aus Formularen)
anhand der Tabellenstruktur
- theoretisch kann ich so auch direkt meine Basisklasse auf jede unbekannte
Tabelle anwenden -
ich brauch die Basisklasse also nur in Ausnahmefällen zu erweitern
hat den Vorteil das ich Änderungen an einem Objekt, z. B. hinzufügen einer
Eigenschaft nicht zweimal vornehmen muss - einmal im Code und einmal in der
DB - sondern nur einmal in der DB
--
Sebastian Mendel
www.sebastianmendel.de
php::bar PHP Wiki - Listenarchive