PDA

Просмотр полной версии : Clear useCacheHash по его значению?


Ивано++
14.07.2013, 17:33
Добрый день...

Как очистить кэш через API-TYPO3 для плагина с useCacheHash=1?

Со страницей можно сделать так:


$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->clear_cacheCmd('all');

//или

$page_id_intval = intval( $page_id);
$tce->clear_cacheCmd($page_id_intval);



А вот как быть с useCacheHash?:)

Не могу найти такой комманды:
http://doc-typo3.ameos.com/4.1.0/classt3lib__TCEmain.html#72b7b0946a9a5ed2fad3d37bb 4db6df5

Ивано++
14.07.2013, 17:49
Есть еще одна функцию - которую нашел - clearSpecificCache:
http://typo3.org/documentation/snippets/sd/9/

Но судя по всему она не подходит для новых версий typo3 (4.7.x)...
Т.к. там еще старые версии таблиц: cache_pages - а в новых это cf_cache_pages


Что то мне все меньше и меньше нравиться EXTBASE - Хотя я его даже и не использую....
Как вот такое с ним сделать?

function clearSpecificCache($pid, $cHash=false) {
if(is_array($pid)) {
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages', 'page_id IN (' . implode(',', $pid) . ')');
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection', 'page_id IN (' . implode(',', $pid) .')');
} else {
$addWhere = $cHash ? ' and cHash = "' . $cHash . '"' : '';
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages', 'page_id = ' . $pid . $addWhere);
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection', 'page_id = ' . $pid . $addWhere);
}
}

И это 2008 год.

Вот тут что то еще нашел:
http://blog.tolleiv.de/2011/12/tagging-page-caches/
http://blog.snowflake.ch/2012/12/31/typo3-caching-framework-in-eigenen-extensions-nutzen/

Funktionen
Der eigene Cache kann nun benutzt werden und bietet folgende Funktionen:

has($identifier) - Überprüft, ob ein Eintrag mit dem übergebenen Identifier vorhanden ist.
get($identifier) - Gibt den gewünschten Eintrag oder NULL, falls kein Eintrag vorhanden ist, zurück.
getByTag($tag) - Gibt alle Einträge mit dem übergebenen Tag zurück.
remove($identifier) - Entfernt den gewünschten Cache Eintrag.
flush() - Entfernt alle Cache Einträge.
flushByTag($tag) - Entfernt alle Einträge mit dem übergebenen Tag.
set($identifier, $data, $tags = array(), $lifetime = NULL) - Schreibt einen Eintrag in den Cache. Lifetime wird in Sekunden angegeben. Bei NULL wird der default genommen, 0 heisst unendlich.
collectGarbage() - Startet den Garbage Collector.
getBackend() - Gibt das Cache Backend des aktuellen Caches zurück.
getIdentifier() - Gibt den Identifier dieses Caches zurück.
isValidEntryIdentifier($identifier) - Überprüft, ob ein Identifier Gültig ist und gibt true, beziehungsweise false zurück.
isValidTag($tag) - Überprüft, ob ein Tag valid ist und gibt true oder false zurück.