public function loadFromCache(EventInterface $event)
{
$request = $event->getRequest();
$response = $event->getResponse();
$cacheKey = $this->getCacheKey($request->getUser(), $request->getImageIdentifier());
$result = $this->cache->get($cacheKey);
if (is_array($result) && isset($result['lastModified']) && $result['lastModified'] instanceof DateTime && isset($result['metadata'])) {
$model = new Model\Metadata();
$model->setData($result['metadata']);
$response->setModel($model)->setLastModified($result['lastModified']);
$response->headers->set('X-Imbo-MetadataCache', 'Hit');
// Stop propagation of listeners for this event
$event->stopPropagation();
return;
} else {
if ($result) {
// Invalid result stored in the cache. Delete
$this->cache->delete($cacheKey);
}
}
$response->headers->set('X-Imbo-MetadataCache', 'Miss');
}