phpbar.de logo

Mailinglisten-Archive

[php] dynamische Attribute für Klassenkonstruktor

[php] dynamische Attribute für Klassenkonstruktor

Sebastian Mendel lists at sebastianmendel.de
Die Mar 6 09:41:54 CET 2007


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