request = $request ?? new ServerRequest(); } public function getQueryParams(): array { return $this->request->getQueryParams(); } public function getParsedBody(): array { return (array)($this->request->getParsedBody() ?? []); } public function getHeaders(): array { return $this->request->getHeaders(); } public function getCookieParams(): array { return $this->request->getCookieParams(); } /** * @todo: Could be removed since 'site' variable is provided explicitly. */ public function getSite(): ?SiteInterface { return $this->request->getAttribute('site'); } /** * @todo: Could be removed since 'siteLanguage' variable is provided explicitly. */ public function getSiteLanguage(): ?SiteLanguage { return $this->request->getAttribute('language'); } public function getNormalizedParams(): ?NormalizedParams { return $this->request->getAttribute('normalizedParams'); } public function getPageArguments(): ?PageArguments { return ($routing = $this->request->getAttribute('routing')) instanceof PageArguments ? $routing : null; } /** * @internal Exposing the full FE user object may change */ public function getFrontendUser(): ?FrontendUserAuthentication { return $this->request->getAttribute('frontend.user'); } }