How to clean and flush cache programmatically in magento2 – Having issue with cache clear programmatically in magento2, then no need to worry about this . The solution is here, you can easily add this cache clean/flush code to your project by following just some easy steps-
1. Define constructor – pass Magento\Framework\App\Cache\TypeListInterface and Magento\Framework\App\Cache\Frontend\Pool to your file’s constructor as defined below :
public function __construct( Context $context, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool ) { parent::__construct($context); $this->_cacheTypeList = $cacheTypeList; $this->_cacheFrontendPool = $cacheFrontendPool; }
2. Now add following code to the method where you want clear/flush cache
$types = array('config','layout','block_html','collections','reflection','db_ddl','eav','config_integration','config_integration_api','full_page','translate','config_webservice'); foreach ($types as $type) { $this->_cacheTypeList->cleanType($type); } foreach ($this->_cacheFrontendPool as $cacheFrontend) { $cacheFrontend->getBackend()->clean(); }
So in this way you can clean and flush cache in magento2 . Hope this blog will help you.
2 comments
public function __construct(
MagentoFrameworkAppCacheManagerFactory $cacheManagerFactory)
{
$this->cacheManagerFactory = $cacheManagerFactory;
}
public function clearCache() {
$cacheManager = $this->cacheManagerFactory->create();
$types = $cacheManager->getAvailableTypes();
$cacheManager->clean($types);
}