6. Очистка кеша: по ключу, по каталогу, по тегу
6.1. Очистка Data\Cache по конкретному ключу
| Код |
|---|
<?php
use Bitrix\Main\Data\Cache;
$cache = Cache::createInstance();
$cacheId = 'demo_simple_cache';
$cacheDir = '/demo/simple_cache';
// Полностью удалить один кеш по ключу
$cache->clean($cacheId, $cacheDir); |
Метод clean() соответствует uniqueString + initDir, как в initCache().
6.2. Очистка всей папки кеша
| Код |
|---|
<?php
use Bitrix\Main\Data\Cache;
$cacheDir = '/demo/simple_cache';
// Удалить ВСЕ кеши внутри этого каталога
$cache = Cache::createInstance();
$cache->cleanDir($cacheDir);
// Либо статически (устаревший, но встречается в коде)
Cache::clearCache(true, $cacheDir); |
6.3. Очистка тегированного кеша по тегу
| Код |
|---|
<?php
use Bitrix\Main\Application;
// В любом месте, где нужен сброс по тегу:
$taggedCache = Application::getInstance()->getTaggedCache();
// Сбросить всё, что помечено этим тегом
$taggedCache->clearByTag('my_custom_tag');
// Примеры для инфоблоков:
$iblockId = 7;
$taggedCache->clearByTag('iblock_id_' . $iblockId); |
clearByTag() — основной метод TaggedCache для ручного сброса кеша по тегу.