本文整理汇总了PHP中Symfony\Component\HttpKernel\HttpCache\HttpCache::invalidate方法的典型用法代码示例。如果您正苦于以下问题:PHP HttpCache::invalidate方法的具体用法?PHP HttpCache::invalidate怎么用?PHP HttpCache::invalidate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\HttpKernel\HttpCache\HttpCache
的用法示例。
在下文中一共展示了HttpCache::invalidate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: invalidate
/**
* Invalidates non-safe methods (like POST, PUT, and DELETE).
*
* @param Request $request
* @param Boolean $catch Whether to process exceptions
*
* @return Response A Response instance
*/
protected function invalidate(Request $request, $catch = false)
{
if ($request->getMethod() !== 'BAN' && $request->getMethod() !== 'PURGE') {
return parent::invalidate($request, $catch);
}
// Reject all non-authorized clients
if (!$this->isPurgeRequestAllowed($request)) {
return new Response('', 405);
}
$response = new Response();
if ($request->getMethod() === 'BAN') {
if ($request->headers->has('x-shopware-invalidates')) {
$cacheId = $request->headers->get('x-shopware-invalidates');
$result = $this->getStore()->purgeByHeader('x-shopware-cache-id', $cacheId);
} else {
$result = $this->getStore()->purgeAll();
}
if ($result) {
$response->setStatusCode(200, 'Banned');
} else {
$response->setStatusCode(404, 'Not Banned');
}
} elseif ($request->getMethod() === 'PURGE') {
if ($this->getStore()->purge($request->getUri())) {
$response->setStatusCode(200, 'Purged');
} else {
$response->setStatusCode(404, 'Not purged');
}
}
return $response;
}
示例2: invalidate
/**
* {@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);
}
示例3: invalidate
/**
* Invalidates non-safe methods (like POST, PUT, and DELETE).
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param Boolean $catch Whether to process exceptions
*
* @return \Symfony\Component\HttpFoundation\Response A Response instance
*
* @see RFC2616 13.10
*/
protected function invalidate(Request $request, $catch = false)
{
if ($request->getMethod() === 'BAN') {
$response = new Response();
$this->getStore()->purgeByHeader(
'x-shopware-cache-id',
$request->getPathInfo() === '/' ? null : ltrim($request->getPathInfo(), '/')
);
$response->setStatusCode(200, 'Banned');
} elseif($request->getMethod() === 'PURGE') {
$response = new Response();
if ($this->getStore()->purge($request->getUri())) {
$response->setStatusCode(200, 'Purged');
} else {
$response->setStatusCode(404, 'Not purged');
}
} else {
$response = parent::invalidate($request);
}
return $response;
}