function PsrHttpFactory::createRequest
Overrides HttpMessageFactoryInterface::createRequest
File
-
vendor/
symfony/ psr-http-message-bridge/ Factory/ PsrHttpFactory.php, line 68
Class
- PsrHttpFactory
- Builds Psr\HttpMessage instances using a PSR-17 implementation.
Namespace
Symfony\Bridge\PsrHttpMessage\FactoryCode
public function createRequest(Request $symfonyRequest) : ServerRequestInterface {
$uri = $symfonyRequest->server
->get('QUERY_STRING', '');
$uri = $symfonyRequest->getSchemeAndHttpHost() . $symfonyRequest->getBaseUrl() . $symfonyRequest->getPathInfo() . ('' !== $uri ? '?' . $uri : '');
$request = $this->serverRequestFactory
->createServerRequest($symfonyRequest->getMethod(), $uri, $symfonyRequest->server
->all());
foreach ($symfonyRequest->headers
->all() as $name => $value) {
try {
$request = $request->withHeader($name, $value);
} catch (\InvalidArgumentException $e) {
// ignore invalid header
}
}
$body = $this->streamFactory
->createStreamFromResource($symfonyRequest->getContent(true));
$format = $symfonyRequest->getContentTypeFormat();
if ('json' === $format) {
$parsedBody = json_decode($symfonyRequest->getContent(), true, 512, \JSON_BIGINT_AS_STRING);
if (!\is_array($parsedBody)) {
$parsedBody = null;
}
}
else {
$parsedBody = $symfonyRequest->request
->all();
}
$request = $request->withBody($body)
->withUploadedFiles($this->getFiles($symfonyRequest->files
->all()))
->withCookieParams($symfonyRequest->cookies
->all())
->withQueryParams($symfonyRequest->query
->all())
->withParsedBody($parsedBody);
foreach ($symfonyRequest->attributes
->all() as $key => $value) {
$request = $request->withAttribute($key, $value);
}
return $request;
}