Теги FOSHttpCacheBundle не работают

У меня есть проблемы с недействительностью тега в FOSHttpCacheBundle. Я могу добавить тег к ответу, но не могу сделать его недействительным. Я пытался с помощью команды (FOS: httpcache: invalidate: Tag), а также с помощью ручной аннулирования.

$cacheManager = $this->get('fos_http_cache.cache_manager');
$cacheManager->invalidateTags(['tests'])->flush();

Мой конфиг:

fos_http_cache:
proxy_client:
symfony:
http:
servers:
- 172.18.0.7
base_url: 172.18.0.7/app_dev.php
cache_control:
defaults:
overwrite: true
rules:
-
match:
methods: [GET]
path: ^/api
headers:
cache_control:
public: true
max_age: 0
s_maxage: 64000
vary: [X-Accept-Version, Accept, Accept-Encoding, Accept-Language]
etag: strong
tags:
enabled: true

Мой AppCache.php

 class AppCache extends HttpCache implements CacheInvalidation
{
use EventDispatchingHttpCache;

public function fetch(Request $request, $catch = false)
{
return parent::fetch($request, $catch);
}

public function __construct(HttpKernelInterface $kernel, $cacheDir = null)
{
parent::__construct($kernel, $cacheDir);

$this->addSubscriber(new CustomTtlListener());
$this->addSubscriber(new PurgeListener());
$this->addSubscriber(new RefreshListener());
}

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(404, 'Not found');
}

return $response;
}
}

Что интересно, я могу сделать недействительным кеш по маршрутам, как по команде, так и вручную. У вас есть идеи, почему это так?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …