How to clear cache programmatically in Drupal 8?
By SQL
TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_config`;
TRUNCATE `cache_container`;
TRUNCATE `cache_data`;
TRUNCATE `cache_default`;
TRUNCATE `cache_discovery`;
TRUNCATE `cache_dynamic_page_cache`;
TRUNCATE `cache_entity`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_render`;
TRUNCATE `cache_rest`;
TRUNCATE `cachetags`;
TRUNCATE `cache_toolbar`;
By Drush
drush cr all
Programmatically using PHP just use this method where you want to clear the cache:
drupal_flush_all_caches();
there are also other methods to clear caches using:
By Admin UI
Navigate to /admin/config/development/performance and click the button "Clear all caches".
By Drush
drush cache-rebuild
//or you can use
drush cr
By update.php Run update.php (/update.php) is another way of clearing the cache.
By SQL Delete all data inside tables that start with "cache_" like this:
TRUNCATE cache_config;
TRUNCATE cache_container;
TRUNCATE cache_data;
TRUNCATE cache_default;
TRUNCATE cache_discovery;
TRUNCATE cache_dynamic_page_cache;
TRUNCATE cache_entity;
TRUNCATE cache_menu;
TRUNCATE cache_render;
TRUNCATE cache_toolbar;
Other Methods:
$variables['#cache']['max-age'] = 0;
\Drupal::service('page_cache_kill_switch')->trigger();
cache_clear_all() // For Drupal-7
drupal_flush_all_caches() // For Drupal-8
If you want to clear specific cache like render cache then you can run the following code:
\Drupal::service('cache.render')->invalidateAll();
If you want to clear a specific cache like route-cache then you can run the following code:
\Drupal::service("router.builder")->rebuild();
If you want to clear specific cache like render cache then you can run the following code:
\Drupal::service('cache.render')->invalidateAll()
If you want to clear all the cache then try:
drupal_flush_all_caches()
The following services implement the CacheBackendInterface
and has invalidateAll()
method which marks all the cache items as invalid:
cache.bootstrap
cache.config
cache.data
cache.default
cache.discovery
cache.entity
cache.menu
cache.render
cache.static
Try below.
cache_clear_all() // For Drupal-7
drupal_flush_all_caches() // For Drupal-8