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