есть мой самописный класс Helper
class My_Helper_Chart
extends Zend_View_Helper_Placeholder_Container_Standalone {
protected $id;
protected $type;
protected $container;
public $body;
public function chart($id, $container = 'container', $type = 'bar') {
$this->id = $id;
$this->container = $container;
$this->type = $type;
$this->body = $this->create();
$this->add();
...
return $this;
}
protected function add() {
/* например, что-то вроде этого */
$chart = $this->create();
$chart->container = $this->container;
$chart->type = $type;
$this->append($chart);
...
}
protected function create() {
/* например такой, ну или экземпляр любого другого класса */
return new stdClass();
}
protected function append(&$object) {
$name = ... ;
$this->body->$name = $object;
}
public function __toString() {
echo json_encode($this->body);
}
}
Суть такая, на выходе я хочу получить что-то вроде этого:
{
body: {
chart: {
container: 'container',
type: 'bar',
...
},
...
}
}
вопрос по реализации метода append:
Тут должен быть код, который по ссылке узнает наименование переменной переданной в качестве аргумента, т.е. если я в метод append передал $chart, значит в body должно записаться свойство chart, и аналогично если я передам $lines в аргумент, то в body запишется свойство lines а значением будет значение переменной $lines.
Я даже не прошу за меня писать код, просто подскажите путь решения данной задачи, сразу скажу что передавать вторым аргументом имя нельзя.
Заранее спасибо!