page = $page; $this->layout = $layout; $this->controller = $controller; parent::__construct(); } /** * This event is triggered in the beginning of the execution cycle. * The layout's onStart method triggers before the page's onStart method. */ public function onStart() {} /** * This event is triggered in the end of the execution cycle, but before the page is displayed. * The layout's onEnd method triggers after the page's onEnd method. */ public function onEnd() {} /** * ArrayAccess implementation */ public function offsetSet($offset, $value) { $this->controller->vars[$offset] = $value; } /** * ArrayAccess implementation */ public function offsetExists($offset) { return isset($this->controller->vars[$offset]); } /** * ArrayAccess implementation */ public function offsetUnset($offset) { unset($this->controller->vars[$offset]); } /** * ArrayAccess implementation */ public function offsetGet($offset) { return isset($this->controller->vars[$offset]) ? $this->controller->vars[$offset] : null; } /** * Dynamically handle calls into the controller instance. * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { if (method_exists($this, $method)) return call_user_func_array([$this, $method], $parameters); return call_user_func_array([$this->controller, $method], $parameters); } }