/** * Merge factory and view datas. So all views can * get shared datas. * * @return array */ private function gatherData() { $data = array_merge($this->factory->getShared(), $this->data); // Check if one of the 'data' is a view instance. // If so, evaluate its content and save it as data. foreach ($data as $key => $value) { if ($value instanceof IRenderable) { $data[$key] = $value->render(); } } return $data; }