public function __construct(
\Magento\Framework\App\Cache\Manager $cacheManager
) {
$this->cacheManager = $cacheManager;
}
private function whereYouNeedToCleanCache()
{
$this->cacheManager->flush($this->cacheManager->getAvailableTypes());
// or this
$this->cacheManager->clean($this->cacheManager->getAvailableTypes());
}
\!h https://www.rakeshjesadiya.com/how-to-clear-or-flush-cache-programmatically-in-magento-2/
<?php
namespace Rbj\Cache\Block;
class CacheClear extends \Magento\Framework\View\Element\Template
{
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool,
\Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
array $data = []
) {
$this->_cacheFrontendPool = $cacheFrontendPool;
$this->_cacheTypeList = $cacheTypeList;
parent::__construct($context, $data);
}
/* Using Product id */
public function cacheClear()
{
/* get all types of cache in system */
$allTypes = array_keys($this->_cacheTypeList->getTypes());
/* Clean cached data for specific cache type */
foreach ($allTypes as $type) {
$this->_cacheTypeList->cleanType($type);
}
/* flushed the Entire cache storage from system, Works like Flush Cache Storage button click on System -> Cache Management */
foreach ($this->_cacheFrontendPool as $cacheFrontend) {
$cacheFrontend->getBackend()->clean();
}
}
}
\!h https://www.mageplaza.com/devdocs/clear-cache-programmically-magento-2.html
<?php
use Magento\Framework\App\PageCache\Version;
use Magento\Framework\App\Cache\TypeListInterface;
use Magento\Framework\App\Cache\Frontend\Pool;
protected $cacheTypeList;
protected $cacheFrontendPool;
public function __construct(
TypeListInterface $cacheTypeList,
Pool $cacheFrontendPool
){
$this->cacheTypeList = $cacheTypeList;
$this->cacheFrontendPool = $cacheFrontendPool;
}
public function flushCache(Version $subject)
{
$_types = [
'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();
}
}