/** * {@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; }
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); }