Теги FOSHttpCacheBundle не работают - PullRequest
0 голосов
/ 12 ноября 2018

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

$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

My 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;
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...