Hallo bobby,
bei dem Design deiner Modell-Klassen sollte das aber funktionieren. Gerade mal im Sandkasten gespielt, man kann den Hauptteil sogar hineinvererben:
class OrmBaseClass {
public function __call($name, $args) {
if (substr($name,0,3) == "get") {
$prop = lcfirst(substr($name,3));
if (property_exists($this, $prop))
return $this->ormGetProperty($prop);
else
echo "Property '$prop' not found\n";
}
if ($name == "ormGetProperty")
echo "Du Depp, deine Modellklasse braucht eine ormGetProperty Methode!\n";
}
}
class Modell extends OrmBaseClass {
protected function ormGetProperty($name) { return $this->$name; }
private $otto = 17;
}
$z = new Modell();
var_dump($z);
echo "Otto ist " . $z->getOtto() . "\n";
echo "Hugo ist " . $z->getHugo() . "\n";
Der ormGetProperty Spion in der Modellklasse ist nötig, weil die Basisklasse ja nicht auf private Properties zugreifen kann.
Allerdings - wenn man erstmal SO WEIT ist, dann kann man die Werte der Properties auch in einem namensindexierten Array in OrmBaseClass speichern und braucht die Modellklassen nur noch als Namenscontainer, oder vielleicht zum Hinzufügen von etwas Logik.
Rolf
--
sumpsi - posui - clusi
sumpsi - posui - clusi