getUri()->getScheme(); return new RequestContext( $this->backendEntryPointResolver->getPathFromRequest($request), $request->getMethod(), $request->getUri()->getHost() ? (string)idn_to_ascii($request->getUri()->getHost()) : '', $request->getUri()->getScheme(), $scheme === 'http' ? $request->getUri()->getPort() ?? 80 : 80, $scheme === 'https' ? $request->getUri()->getPort() ?? 443 : 443, ); } public function fromUri(UriInterface $uri, string $method = 'GET'): RequestContext { return new RequestContext( '', $method, (string)idn_to_ascii($uri->getHost()), $uri->getScheme(), // Ports are only necessary for URL generation in Symfony which is not used by TYPO3 80, 443, $uri->getPath() ); } public function fromSiteLanguage(SiteLanguage $language): RequestContext { $scheme = $language->getBase()->getScheme(); return new RequestContext( // page segment (slug & enhanced part) is supposed to start with '/' rtrim($language->getBase()->getPath(), '/'), 'GET', $language->getBase()->getHost(), $scheme ?: 'https', $scheme === 'http' ? $language->getBase()->getPort() ?? 80 : 80, $scheme === 'https' ? $language->getBase()->getPort() ?? 443 : 443 ); } }