Open sidebar
/** * Класс подписывается на события создания, обновления и удаления экземпляра модели, и удаляет соответсвующий кэш * * Class CacheableObserver * @package app\Observers */ class CacheableObserver { /** * The Cache repository implementation * @var Repository */ private $cache; /** * CacheableObserver constructor. * @param $cache */ public function __construct(Repository $cache) { $this->cache = $cache; } public function created($model) { if ($model instanceof Cacheable) { $this->clearCache($model); } } public function updating($model) { if ($model instanceof Cacheable) { $this->clearCache($model); } } public function deleting($model) { if ($model instanceof Cacheable) { $this->clearCache($model); } } /** * Clear cache of given model * @param $model */ private function clearCache($model) { $this->cache ->tags($model->cacheTags) ->flush(); } }
Close sidebar
Back
Please note that all pasted data is publicly available.
Twitter
GitHub
Use setting
Back
Please note that all pasted data is publicly available.
Twitter
GitHub
Use setting