/**
  * @param PostResponseEvent $event
  */
 public function cacheData(PostResponseEvent $event)
 {
     if ($event->getRequest()->query->get('no-cache', null)) {
         return;
     }
     if (array_key_exists($route = $event->getRequest()->attributes->get('_route'), $this->cachedRoutes)) {
         /** @var Response $response */
         $response = $event->getResponse();
         if ($response->getStatusCode() < 400) {
             if (!$event->getRequest()->attributes->has('cached_data')) {
                 $this->responseCacher->writeCache($event->getRequest(), $event->getResponse(), $this->cachedRoutes[$route]);
             }
         }
     }
 }
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if (!$event->isMasterRequest() || !$event->getRequest()->headers->has(self::GENERATE_LOG_HEADER)) {
         return;
     }
     $this->responseLogger->logReponse($event->getRequest(), $event->getResponse());
 }
Esempio n. 3
0
 public function onKernelTerminate(PostResponseEvent $event)
 {
     /** @var Request $request */
     $request = $event->getRequest();
     if (!$this->isEnable || !$this->isLoggableRequest($request)) {
         return;
     }
     try {
         /** @var Response $response */
         $response = $event->getResponse();
         $route = $request->get('_route');
         $content = $this->cleanSensitiveContent($route, $request->getContent());
         $token = $this->tokenStorage->getToken();
         $user = !is_null($token) ? $token->getUser() : null;
         $logRequest = new LogRequest();
         $logRequest->setRoute($route)->setPath($request->getPathInfo())->setMethod($request->getMethod())->setQuery(urldecode($request->getQueryString()))->setContent($content)->setStatus($response->getStatusCode())->setIp($request->getClientIp())->setUser(!is_string($user) ? $user : null);
         if ($this->logResponse($response)) {
             $logRequest->setResponse($response->getContent());
         }
         $this->em->persist($logRequest);
         $this->em->flush();
     } catch (\Exception $e) {
         $this->logger->error(sprintf("LogRequest couldn't be persist : %s", $e->getMessage()));
     }
 }
 /**
  * @param PostResponseEvent $event
  */
 public function onTerminate(PostResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     $this->eventDispatcher->dispatch(Events::REQUEST_ENDS, new RequestEnded($event->getRequest(), $event->getResponse()));
 }
 /**
  * Forwards the request to the Frontend class if there is a page object.
  *
  * @param PostResponseEvent $event The event object
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if (!$this->framework->isInitialized()) {
         return;
     }
     Frontend::indexPageIfApplicable($event->getResponse());
 }
 /**
  * Forwards the request to the Frontend class if there is a page object.
  *
  * @param PostResponseEvent $event
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if (!$this->framework->isInitialized()) {
         return;
     }
     /** @var Frontend $frontend */
     $frontend = $this->framework->getAdapter('Contao\\Frontend');
     $frontend->indexPageIfApplicable($event->getResponse());
 }
Esempio n. 7
0
 /**
  * @param PostResponseEvent $event
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     if ($span = $this->spanStack->pop()) {
         $this->tracer->trace([$this->httpFoundationSpanFactory->fromOutgoingResponse($event->getResponse(), $span)]);
     }
 }
 function it_traces_the_response_and_pop_the_stack(HttpFoundationSpanFactory $httpFoundationSpanFactory, Tracer $tracer, SpanStack $spanStack, Span $span, PostResponseEvent $event)
 {
     $response = new Response();
     $event->isMasterRequest()->willReturn(true);
     $event->getResponse()->willReturn($response);
     $spanStack->pop()->shouldBeCalled()->willReturn($span);
     $httpFoundationSpanFactory->fromOutgoingResponse($response, $span)->shouldBeCalled()->willReturn($span);
     $tracer->trace([$span])->shouldBeCalled();
     $this->onKernelTerminate($event);
 }
 /**
  * @param PostResponseEvent $event
  */
 public function onTerminate(PostResponseEvent $event)
 {
     $response = $event->getResponse();
     if (!is_null($this->logger)) {
         $this->logger->info('< ' . $response->getStatusCode());
         if (!is_null($this->benchmark)) {
             $total = $this->benchmark->getAppStatistic();
             $this->logger->info('= Time: ' . $total['time'] . ', Memory: ' . FileSizeHelper::humanize($total['memory']));
         }
     }
 }
 /**
  * Forwards the request to the Frontend class if there is a page object.
  *
  * @param PostResponseEvent $event
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if (!$this->framework->isInitialized()) {
         return;
     }
     // Do not index fragments
     if (preg_match('~(?:^|/)' . preg_quote($this->fragmentPath, '~') . '/~', $event->getRequest()->getPathInfo())) {
         return;
     }
     /** @var Frontend $frontend */
     $frontend = $this->framework->getAdapter(Frontend::class);
     $frontend->indexPageIfApplicable($event->getResponse());
 }
 /**
  * Apply invalidators and flush cache manager
  *
  * On kernel.terminate:
  * - see if any invalidators apply to the current request and, if so, add
  *   their routes to the cache manager;
  * - flush the cache manager in order to send invalidation requests to the
  *   HTTP cache.
  *
  * @param PostResponseEvent $event
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     $request = $event->getRequest();
     $response = $event->getResponse();
     // Don't invalidate any caches if the request was unsuccessful
     if ($response->isSuccessful()) {
         $this->handleInvalidation($request, $response);
     }
     try {
         $this->cacheManager->flush();
     } catch (ExceptionCollection $e) {
         // swallow exception
         // there is the fos_http_cache.event_listener.log to log them
     }
 }
 /**
  * If needed, executes the ezperformancelogger logging on the Symfony Post-Response event
  * We wrap the logging code in a runCallback call, as it might need to read inis and such stuff
  * NB: we do not need to check for request type - this event only fires on master requests
  *
  * @param $event
  */
 public function onTerminate(PostResponseEvent $event)
 {
     // small speed gain: avoid useless callback if measurement was already done
     if ($this->hasRun) {
         return;
     }
     $response = $event->getResponse();
     $legacyKernelClosure = $this->legacyKernelClosure;
     $legacyKernel = $legacyKernelClosure();
     // accommodate for treemenu kernel not allowing runCallback
     try {
         $legacyKernel->runCallback(function () use($response) {
             eZPerfLogger::cleanup($response->getContent(), $response->getStatusCode());
         });
     } catch (\RuntimeException $e) {
     }
     $this->hasRun = true;
 }
Esempio n. 13
0
 public function onKernelTerminate(PostResponseEvent $event)
 {
     if ($this->container->has('profiler')) {
         /** @var $profiler \Symfony\Component\HttpKernel\Profiler\Profiler */
         $profiler = $this->container->get('profiler');
         if ($profile = $profiler->loadProfileFromResponse($event->getResponse())) {
             $logRequest = $this->jarvesLogHandler->getLogRequest();
             $logRequest->setCounts(json_encode($this->jarvesLogHandler->getCounts()));
             $logRequest->setProfileToken($profile->getToken());
             $logRequest->save();
             return;
         }
     }
     //are there any warnings+?
     if ($this->jarvesLogHandler->getCounts()) {
         $logRequest = $this->jarvesLogHandler->getLogRequest();
         $logRequest->setCounts(json_encode($this->jarvesLogHandler->getCounts()));
         $logRequest->save();
     }
     $this->jarvesLogHandler->resetLogRequest();
 }
 /**
  * @param PostResponseEvent $event
  */
 public function onTerminate(PostResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     $request = $event->getRequest();
     if ($request->getRealMethod() == 'OPTIONS') {
         return;
     }
     if (!preg_match($this->rule, $request->getRequestUri())) {
         return;
     }
     $response = $event->getResponse();
     $message = $this->formatter->format($request, $response);
     if ($response->isClientError()) {
         $this->logger->error($message);
         return;
     }
     if ($response->isServerError()) {
         $this->logger->critical($message);
         return;
     }
     $this->logger->info($message);
 }
Esempio n. 15
0
 /**
  * Save the previous URL in session which is based on the referer header or the request, or
  * the _previous_url request attribute, if defined.
  *
  * If the value of _previous_url is "dont-save", the current referrer is not saved.
  *
  * @param \Symfony\Component\HttpKernel\Event\PostResponseEvent $event
  */
 public function registerPreviousUrl(PostResponseEvent $event)
 {
     $request = $event->getRequest();
     if (!$request->isXmlHttpRequest() && $event->getResponse()->isSuccessful()) {
         $referrer = $request->attributes->get('_previous_url', null);
         if (null !== $referrer) {
             // A previous URL (or the keyword 'dont-save') has been specified.
             if ('dont-save' == $referrer) {
                 // We should not save the current URL as the previous URL
                 $referrer = null;
             }
         } else {
             // The current URL will become the previous URL
             $referrer = $request->getUri();
         }
         // Set previous URL, if defined
         if (null !== $referrer) {
             $session = $request->getSession();
             if (ConfigQuery::isMultiDomainActivated()) {
                 $components = parse_url($referrer);
                 $lang = LangQuery::create()->filterByUrl(sprintf("%s://%s", $components["scheme"], $components["host"]), ModelCriteria::LIKE)->findOne();
                 if (null !== $lang) {
                     $session->setReturnToUrl($referrer);
                 }
             } else {
                 if (false !== strpos($referrer, $request->getSchemeAndHttpHost())) {
                     $session->setReturnToUrl($referrer);
                 }
             }
         }
     }
 }
 /**
  * @param PostResponseEvent $event
  */
 public function onKernelTerminate(PostResponseEvent $event)
 {
     $request = new Request($event->getRequest(), $event->getResponse(), $this->getUsername());
     $this->entityManager->persist($request);
     $this->entityManager->flush();
 }