/**
  * @param GetResponseEvent $event
  */
 public function onRequest(GetResponseEvent $event)
 {
     if (!$event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     if ($this->providerFactory instanceof RequestAware) {
         $this->providerFactory->setRequest($event->getRequest());
     }
     $provider = $this->providerFactory->create();
     if (null === $provider->getRequestId()) {
         return;
     }
     $event->getRequest()->headers->set($this->requestHeader, $provider->getRequestId());
 }
Пример #2
0
 /**
  * @param RequestInterface  $request
  * @param ResponseInterface $response
  * @param callable          $next
  *
  * @return ResponseInterface|MessageInterface
  *
  * @throws \InvalidArgumentException for invalid header values or names
  */
 public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next)
 {
     if ($this->providerFactory instanceof RequestAware) {
         $this->providerFactory->setRequest($request);
     }
     $provider = $this->providerFactory->create();
     if (!$this->requestDecorator) {
         $this->requestDecorator = new AddsRequestIdToHttpMessage($provider);
     }
     if (!$this->responseDecorator) {
         $this->responseDecorator = new AddsRequestIdToHttpMessage($provider);
     }
     return $this->responseDecorator->decorate($next($this->requestDecorator->decorate($request), $response));
 }