function HttpFoundationFactory::createRequest
Overrides HttpFoundationFactoryInterface::createRequest
File
-
vendor/
symfony/ psr-http-message-bridge/ Factory/ HttpFoundationFactory.php, line 37
Class
- HttpFoundationFactory
- @author Kévin Dunglas <dunglas@gmail.com>
Namespace
Symfony\Bridge\PsrHttpMessage\FactoryCode
public function createRequest(ServerRequestInterface $psrRequest, bool $streamed = false) : Request {
$server = [];
$uri = $psrRequest->getUri();
$server['SERVER_NAME'] = $uri->getHost();
$server['SERVER_PORT'] = $uri->getPort() ?: ('https' === $uri->getScheme() ? 443 : 80);
$server['REQUEST_URI'] = $uri->getPath();
$server['QUERY_STRING'] = $uri->getQuery();
if ('' !== $server['QUERY_STRING']) {
$server['REQUEST_URI'] .= '?' . $server['QUERY_STRING'];
}
if ('https' === $uri->getScheme()) {
$server['HTTPS'] = 'on';
}
$server['REQUEST_METHOD'] = $psrRequest->getMethod();
$server = array_replace($psrRequest->getServerParams(), $server);
$parsedBody = $psrRequest->getParsedBody();
$parsedBody = \is_array($parsedBody) ? $parsedBody : [];
$request = new Request($psrRequest->getQueryParams(), $parsedBody, $psrRequest->getAttributes(), $psrRequest->getCookieParams(), $this->getFiles($psrRequest->getUploadedFiles()), $server, $streamed ? $psrRequest->getBody()
->detach() : $psrRequest->getBody()
->__toString());
$request->headers
->add($psrRequest->getHeaders());
return $request;
}