Приветствую. Подскажите пожалуйста. Есть блок в котором выполняется код php. Как можно закешировать этот блок скажем на неделю? Чтоб этот код не выполнялся каждый раз при загрузке страницы.
Пробовали включить "кэширование блоков" в настройках кэширования друпала?
Включено но я не уверен что этот код не запускается каждый раз. Я конечно могу закешировать сам код в файл и брать данные из файла, но может есть готовые решения.
А как проверить работает ли кеширование? При смене данных - вижу что на странице выводятся свежие данные моментально, поэтому сомневаюсь работает ли это.
Есть еще извращение = сделать блок через views и включить кеш = тогда будет кешироваться не только для анонимов и там можно указать срок кеширования, даже можно там использовать Views PHP
Комментарии
Пробовали включить "кэширование блоков" в настройках кэширования друпала?
Включено но я не уверен что этот код не запускается каждый раз. Я конечно могу закешировать сам код в файл и брать данные из файла, но может есть готовые решения.
Эта галочка и есть готовое решение)
А как проверить работает ли кеширование? При смене данных - вижу что на странице выводятся свежие данные моментально, поэтому сомневаюсь работает ли это.
Поиграйтесь с настройками кэширования этого конкретного блока https://api.drupal.org/api/drupal/includes%21common.inc/group/block_cach...
А вы залогиненым проверяете? Под админом кэша почти нет.
Чтобы проверить кэширование, вставьте в код drupal_set_message() и посмотрите под разными ролями.
Есть еще извращение = сделать блок через views и включить кеш = тогда будет кешироваться не только для анонимов и там можно указать срок кеширования, даже можно там использовать Views PHP
Спасибо всем за помощь!
<?php
function my_module_function() {
$my_data = &drupal_static(__FUNCTION__);
if (!isset($my_data)) {
if ($cache = cache_get('my_module_data')) {
$my_data = $cache->data;
}
else {
// Do your expensive calculations here, and populate $my_data
// with the correct stuff..
cache_set('my_module_data', $my_data, 'cache');
}
}
return $my_data;
}
?>
by https://www.lullabot.com/articles/a-beginners-guide-to-caching-data-in-d...