Example #1
0
 /**
  * @param Request  $request
  * @param Response $response
  * @param array    $params
  *
  * @return string
  */
 public function writeCache(Request $request, Response $response, array $params = array())
 {
     $cacheableData = $this->createCacheableData($request, $params, $response->getContent());
     $this->cacheAdapter->set($cacheableData);
     $variantParams = $this->getVariantParams($request);
     $insersectParams = array_intersect_key($params['tags'], array_keys($variantParams));
     $tags = array();
     foreach ($insersectParams as $key => $tag) {
         $tags[$tag] = $variantParams[$tag];
     }
     $this->tagHandler->createTags($tags, $cacheableData->getHashKey());
     return $cacheableData->getHashKey();
 }
 /**
  * @param FilterResponseEvent $responseEvent
  */
 public function invalidate(FilterResponseEvent $responseEvent)
 {
     $request = $responseEvent->getRequest();
     $tags = array();
     if ($request->isMethod('POST')) {
         $parameters = array_merge($request->request->all(), $request->query->all(), $request->attributes->all());
         foreach ($this->tags as $key => $associatedTag) {
             foreach ($associatedTag['associated'] as $tag) {
                 if (isset($parameters[$tag])) {
                     $tags[$key] = array('value' => $parameters[$tag], 'type' => $associatedTag['decache_type']);
                     break;
                 }
             }
         }
         $this->tagHandler->cleanTags($tags, true);
     }
 }