I'm trying to implement some automated getter and setter for php objects.
My target is to automatically have for each properties the methods getProperty() and setProperty(value), that way if the method is not implemented for a property the script will  simply set or get the value.
An example, to make myself clear:
class Foo {
    public $Bar;
}
$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "bar"
or
class Foo {
    public $Bar;
    public function setBar($bar) { $Bar = $bar; }
    public function getBar($bar) { return 'the value is: ' . $bar; }
}
$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "the value is: bar"
Any idea/hints on how to accomplish this?
If you want to simulate the getXy and setXy functions for arbitrary properties, then use the magic __call wrapper:
function __call($method, $params) {
     $var = lcfirst(substr($method, 3));
     if (strncasecmp($method, "get", 3) === 0) {
         return $this->$var;
     }
     if (strncasecmp($method, "set", 3) === 0) {
         $this->$var = $params[0];
     }
}
This would be a good opportunity to do something useful for once, by adding a typemap or anything. Otherwise eschewing getters and setters alltogether might be advisable.
read the magic functions of php and your need you can use __get and __set functions
read this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With