Возникла надобность написать расширение для php.
Минимальная задача - реализовать вот такой класс:
class MyClass {
protected $attrs = array();
public function __construct() {
$this->attrs['id'] = '';
$this->attrs['name'] = '';
}
public function __get($key) {
if (array_key_exists($key, $this->attr))
return $this->attrs[$key];
}
public function __set($key, $value) {
if (array_key_exists($key, $this->attr))
$this->attrs[$key] = $value;
}
}
На данный момент, по тем манам что удалось нарыть в сети с большим трудом, имеется:
Описание класса с нужным свойством и конструктор.
Т.е. я уже могу подключить своё расширение, написать
$c = new MyClass();
var_dump($c);
и увидеть что экземпляр есть и он содержит то что ожидается.
Теперь, когда надо реализовать __get __set - немного застпорился.
Во-первых, не силён в сях. Не знаю, следует ли мне хранить свойства в отдельной своей структуре,
или каждый раз обращаться за zend_read_property/zend_update_property?
Мне нужен пример реализации такого __get как в примере.
Есть ли здесь достаточные специалисты чтобы помочь?
Сишный код при необходимости покажу