{ return $this->result; } } class ViewImplJSON extends ViewImpl { protected $result = array(); public function drawLine() { $this->appendResult(array('type' => 'line')); } public function drawText($text) { $this->appendResult(array('type' => 'text', 'text' => $text)); } protected function appendResult($result) { $this->result[] = $result; } public function getResult() { return json_encode($this->result); } } /// $Content = new ViewContent(); $Table = new ViewTable(); $Content->printParagraph('Hello world'); $Content->printResult(); $Table->drawCell('I am cell'); $Table->printResult();