/**
* Method called on kernel.request event. Handle only "subrequest"
* @param KernelEvent $event The received event
*
* @return void
*/
public function onKernelRequest(KernelEvent $event)
{
if (HttpKernelInterface::MASTER_REQUEST == $event->getRequestType() || null === $this->cacheService) {
return;
}
$request = $event->getRequest();
if ($request->attributes->has('server_cache')) {
$cacheKey = $this->getRequestCacheKey($request);
$request->attributes->set('cache_key', $cacheKey);
$controller = $request->attributes->get('controllerName');
$fromCache = false;
$responseContent = $this->cacheService->get($cacheKey);
if ($responseContent || $responseContent === '' && !$request->attributes->get('ignore_errors')) {
$response = new Response($responseContent);
$response->headers->set('server_cached', 1);
$event->setResponse($response);
if ($this->debug) {
$this->decorateResponse($request, $response, $controller, true);
}
$fromCache = true;
}
$this->cachedBlocks[$controller . ' - key : ' . $cacheKey] = $fromCache;
}
}