Как работать с кэшем
Добрый день создаю модуль и возникли проблемы с кэшем(с ним сталкиваюсь впервые).имееться $xml я его распарсил и все необходимое закинул в переменную $res.(или проще закинуть все в блок и кэшировать уже блок?)
Сейчас требуется закинуть его в кэш (обновлять это раз в 6 часов) и вытаскивать это при обращении.
Знаю что требуется искать в
Но чего то не догоняю как закинуть.
Как я понял данный код закиывает в кэш, но куда столько переменных... куда вставить мою переменную?
cache_set($cid, $data, $bin = 'cache', $expire ='CACHE_PERMANENT')
Вытащить из кэша
cache_get ($ CID, $ bin = "cache")
а для обновления как использовать hook_cron не представляю.
Подскажите мне насчет моей проблемы. Заранее спасибо.
Я возможно ошибаюсь, но друпал кеширует все блоки по умолчанию, если не указано, что его кешировать не нужно в настройках блока. Посмотрите вот этот модуль block cache alter, возможно он вам поможет:
http://drupal.org/project/blockcache_alter
Насчет того, что можно и без модуля обойтись (это в описание к модулю написано):
... $cache = cache_get('pref_pref_leader', 'cache_block'); // Return cache if possible. if (!empty($cache) && isset($cache->data) && !empty($cache->data)) { return $cache->data; } // no cache, generate the output. ... $content = ...; $block = array( 'subject' => 'Семерка лучших', 'content' => $content, ); // Cache for 30 mins. cache_set('pref_pref_leader', $block 'cache_block', time() + 1800); return $block; ...
Источник: http://drupal.stackexchange.com/questions/6090/drupal-7-block-caching