3 namespace Drupal\Core\Controller\ArgumentResolver;
5 use Psr\Http\Message\ServerRequestInterface;
6 use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface;
7 use Symfony\Component\HttpFoundation\Request;
8 use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
9 use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
12 * Yields a PSR7 request object based on the request object passed along.
14 final class Psr7RequestValueResolver implements ArgumentValueResolverInterface {
17 * The PSR-7 converter.
19 * @var \Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface
21 protected $httpMessageFactory;
24 * Constructs a new ControllerResolver.
26 * @param \Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface $http_message_factory
27 * The PSR-7 converter.
29 public function __construct(HttpMessageFactoryInterface $http_message_factory) {
30 $this->httpMessageFactory = $http_message_factory;
36 public function supports(Request $request, ArgumentMetadata $argument) {
37 return $argument->getType() == ServerRequestInterface::class;
43 public function resolve(Request $request, ArgumentMetadata $argument) {
44 yield $this->httpMessageFactory->createRequest($request);