Способы очистки кэша с помощью функции cache_clear_all()

14:25

Примеры работы функции cache_clear_all().

Для очистки кэша страниц и блоков с истёкшим временем хранения, нужно вызвать ф-ю без аргументов:

cache_clear_all();

это равносильно:

cache_clear_all(NULL, 'cache_block');
cache_clear_all(NULL, 'cache_page');

null говорит о том, что нужно удалять данные только с истёкшим сроком.

Таким образом, чтобы удалить все устаревшие данные из указанной таблицы, нужно вторым аргументом передать название таблицы:

cache_clear_all(NULL, 'cache_TABLE');

Удалить все данные из указанной таблицы, даже тех, срок которых не истёк:

cache_clear_all('*', 'cache_TABLE', TRUE);

Удалить данные, ID которых имеет определённый префикс, даже тех, срок которых ещё не истёк:

cache_clear_all('ID_PREFIX', 'cache_TABLE', TRUE);

Например можно удалить кэш страниц таксономии:

cache_clear_all('http://example.com/taxonomy/term/', 'cache_page', TRUE);

Чтобы удалить из кэша данные по ID, нужно первым аргументом передать идентификатор, а вторым название таблицы:

cache_clear_all('ID', 'cache_TABLE');

Например можно удалить кэш определённой страницы:

cache_clear_all('http://example.com/node/123', 'cache_page');

Очистить все кэши можно с помощью функции:

drupal_flush_all_caches();

По материалам An overview of Drupal's cache_clear_all uses.

(c)