When saving objects in your custom module it may be beneficial to indicate that a cache type should be cleared. This can be achieved using the TypeListInterface from the Framework’s Cache Module. Furthermore with this interface you can also retrieve the cache type labels, a list of other caches that have been invalidated, or clean a cache type by code.
<?php
namespace Vendor\Module\Folder;
use Magento\Framework\App\Cache\TypeListInterface;
/**
* Class Example
*
* @package Vendor\Module\Folder
*/
class Example {
/**
* @var TypeListInterface
*/
protected $_cacheTypesList;
/**
* Example constructor.
*
* @param TypeListInterface $_cacheTypesList
*/
public function __construct( TypeListInterface $_cacheTypesList )
{
$this->_cacheTypesList = $_cacheTypesList;
}
/**
* Mark specific cache type(s) as invalidated
*
* @param $type
*/
public function invalidateCache( $type )
{
$this->_cacheTypesList->invalidate( $type );
}
/**
* Get information about all declared cache types
*
* @return array
*/
public function getCacheTypes()
{
/* Example structure for cache type array
$_types = [
'CACHE TYPE CODE' =>
(object)[ //Magento\Framework\DataObject
'id' =>(int)'',
'cache_type'=>(string) '',
'description'=>(string)'',
'tags'=>(string)'',
'status'=>(int)'',
]
];*/
return $this->_cacheTypesList->getTypes();
}
}