示例#1
0
 /**
  * {@inheritDoc}
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ('PURGE' !== $request->getMethod()) {
         return parent::invalidate($request, $catch);
     }
     $response = new Response();
     if ($this->getStore()->purge($request->getUri())) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(200, 'Not purged');
     }
     return $response;
 }
示例#2
0
 protected function invalidate(Request $request, $catch = false)
 {
     if ('PURGE' !== $request->getMethod()) {
         return parent::invalidate($request, $catch);
     }
     if ('127.0.0.1' !== $request->getClientIp()) {
         return new Response('Invalid HTTP method', Response::HTTP_BAD_REQUEST);
     }
     $response = new Response();
     if ($this->getStore()->purge($request->getUri())) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(200, 'Not found');
     }
     return $response;
 }
 /**
  * Handle invalidation, including Http PURGE requests.
  * All non-allowed PURGE requests will receive an HTTP 405
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  * @param boolean $catch
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ($request->getMethod() !== 'PURGE') {
         return parent::invalidate($request, $catch);
     }
     // Reject all non-authorized clients
     if (!$this->isInternalRequestAllowed($request)) {
         return new Response('', 405);
     }
     $response = new Response();
     $store = $this->getStore();
     if ($store instanceof RequestAwarePurger) {
         $result = $store->purgeByRequest($request);
     } else {
         $result = $store->purge($request->getUri());
     }
     if ($result === true) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(404, 'Not purged');
     }
     return $response;
 }
 /**
  * {@inheritDoc}
  *
  * Adding the Events::PRE_INVALIDATE event.
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ($this->getEventDispatcher()->hasListeners(Events::PRE_INVALIDATE)) {
         $event = new CacheEvent($this, $request);
         $this->getEventDispatcher()->dispatch(Events::PRE_INVALIDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
     }
     return parent::invalidate($request, $catch);
 }