Возможно ли очистить кэш, а не просто пропускать его для текущего запроса?
Просто пример:
Код |
---|
function testGetTime(){
$cache_id = "tag_id";
$cache_dir = "/tagged_getlist";
$obCache = new CPHPCache;
if($obCache->InitCache(36000, $cache_id, $cache_dir))
{
$data = $obCache->GetVars();
}
elseif($obCache->StartDataCache())
{
global $CACHE_MANAGER;
$data = date("H:i:s");
$CACHE_MANAGER->StartTagCache($cache_dir);
$CACHE_MANAGER->RegisterTag("cache_tag");
$CACHE_MANAGER->EndTagCache();
$obCache->EndDataCache($data);
}
return $data;
}
|
Функция testGetTime() возвращает текущее время.
Проверяем:
Код |
---|
echo testGetTime() . "\n";
sleep(3);
echo testGetTime() . "\n";
sleep(3);
echo testGetTime() . "\n";
sleep(3);
echo testGetTime() . "\n"; |
Допустим текущее время 00:00:00, в результате должно быть
Код |
---|
00:00:00
00:00:00
00:00:00
00:00:00
|
но если очистить кэш по тегу напр. после первого вызова
Код |
---|
echo testGetTime() . "\n";
sleep(3);
//////
$GLOBALS["CACHE_MANAGER"]->ClearByTag("cache_tag");
//////
echo testGetTime() . "\n";
sleep(3);
echo testGetTime() . "\n";
sleep(3);
echo testGetTime() . "\n"; |
то результат будет
Код |
---|
00:00:00
00:00:03
00:00:00
00:00:00 |
почему кэш не удаляется, или я что-то не так делаю?