Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PsrHttpFactory.php

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\Factory

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal