Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   Clear useCacheHash по его значению? (http://forum.typo3.ru/showthread.php?t=10831)

Ивано++ 14.07.2013 17:33

Clear useCacheHash по его значению?
 
Добрый день...

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

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


$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/cla...d3d37bb4db6df5

Ивано++ 14.07.2013 17:49

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

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


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

PHP код:

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/...nsions-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.


Часовой пояс GMT +4, время: 00:15.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot