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::get()->request; } return $this->request; } /** * @param $name * @return mixed|null * @throws Exception */ public function __get($name) { $method = 'get' . ucfirst($name); if (method_exists($this, $method)) { return $this->$method(); } return parent::__get($name); } }