app = Snowflake::app(); $this->goto = $this->app->goto; parent::__construct($config); } /** * @param HttpParams $input */ public function setInput(HttpParams $input): void { $this->input = $input; } /** * @param HttpHeaders $headers */ public function setHeaders(HttpHeaders $headers): void { $this->headers = $headers; } /** * @param Request $request */ public function setRequest(Request $request): void { $this->request = $request; } /** * @return HttpParams * @throws Exception */ public function getInput(): HttpParams { if (!$this->input) { $this->input = $this->getRequest()->params; } return $this->input; } /** * @return HttpHeaders * @throws Exception */ public function getHeaders(): HttpHeaders { if (!$this->headers) { $this->headers = $this->getRequest()->headers; } return $this->headers; } /** * @return Request * @throws Exception */ public function getRequest(): Request { if (!$this->request) { $this->request = Snowflake::app()->request; } return $this->request; } /** * @param $name * @return mixed|null * @throws Exception */ public function __get($name) { if (property_exists($this, $name)) { return $this->$name; } else if (method_exists($this, $name)) { return $this->$name(); } return parent::__get($name); } }