The Cache Manager

Use the CacheManager to explicitly invalidate or refresh paths, URLs, routes, tags or responses with specific headers.

By invalidating a piece of content, you tell your caching proxy to no longer serve it to clients. When next requested, the proxy will fetch a fresh copy from the backend application and serve that instead.

By refreshing a piece of content, a fresh copy will be fetched right away.


These terms are explained in more detail in An Introduction to Cache Invalidation.

The cache manager is available in the Symfony DI container using autowiring with the FOS\HttpCacheBundle\CacheManager class.

New in version 2.3.2: Autowiring support has been added in version 2.3.2. In older versions of the bundle, you need to explicitly use the service name fos_http_cache.cache_manager.



Make sure to configure your proxy for purging first.

Invalidate a path:



The flush() method is explained below.

Invalidate a URL:


Invalidate a route:

$cacheManager->invalidateRoute('user_details', array('id' => 123));

Invalidate a regular expression:

$cacheManager->invalidateRegex('.*', 'image/png', array(''));

The cache manager offers a fluent interface:

    ->invalidateRoute('villain_details', array('name' => 'Jaws')
    ->invalidateRoute('villain_details', array('name' => 'Goldfinger')
    ->invalidateRoute('villain_details', array('name' => 'Dr. No')

refreshPath() and refreshRoute()


Make sure to configure your proxy for purging first.

Refresh a path:


Refresh a URL:


Refresh a Route:

$cacheManager->refreshRoute('user_details', array('id' => 123));


Invalidate cache tags:

$cacheManager->invalidateTags(array('some-tag', 'other-tag'));


Marking a response with tags can be done through the ResponseTagger.


Internally, the invalidation requests are queued and only sent out to your HTTP proxy when the manager is flushed. The manager is flushed automatically at the right moment:

You can also flush the cache manager manually: