HttpRequestProcessor.php 1021 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\GraphQl\Controller;
  8. use Magento\Framework\App\Request\Http;
  9. /**
  10. * Hold information about all http processors objects that can handle a header entry
  11. */
  12. class HttpRequestProcessor
  13. {
  14. /**
  15. * @var HttpHeaderProcessorInterface[]
  16. */
  17. private $headerProcessors = [];
  18. /**
  19. * @param HttpHeaderProcessorInterface[] $graphQlHeaders
  20. */
  21. public function __construct(array $graphQlHeaders = [])
  22. {
  23. $this->headerProcessors = $graphQlHeaders;
  24. }
  25. /**
  26. * Process the headers from a request given from usually the controller
  27. *
  28. * @param Http $request
  29. * @return void
  30. */
  31. public function processHeaders(Http $request) : void
  32. {
  33. foreach ($this->headerProcessors as $headerName => $headerClass) {
  34. $headerClass->processHeaderValue((string)$request->getHeader($headerName));
  35. }
  36. }
  37. }