тут ми перевіряємо, чи існує інстанс, якщо так – звертаємося до нього напряму (в кометарях вказано, що так – швидше), якщо ж ні – створюємо новий. після того, у моєму випадку, йшов шмат такого коду:
// get content of "page_symbol" tag
$cached_template_content = $cached_lists->get($page."_".$symbol);
// if cached element exists
if($cached_template_content != NULL) {
// assign it to template variable
$this->template->content = $cached_template_content;
тут я намагався, витягнути потрібний блок, де $page.”_”.$symbol – це ідентифікатор (назва).
якщо такий блок існував, я його напряму вставляв у свій темплейт (точніше присвоював змінній з темплейта). далі було таке:
// render one more time and save in variable
$new_template_content_cache = View::factory('list', $data)->render();
// save to cache for 1209600 seconds
$cached_lists->set($page."_".$symbol, $new_template_content_cache, 1209600);
$this->template->content = $new_template_content_cache;
тобто у випадку, якщо такого блоку, який я шукав, не виявилося – я рендерив / генерував такий наново, після чого записував у кеш десь на півтора тижні, здається (ліньки зараз рахувати). власне, тут можна було взагалі поставити й місяць, або й узагалі “безлімітний” час (просто не вказувати його), – так було би правильніше. ну, я до цього ще повернуся. тут залишився ще один нюанс – збір сміття. мені він як такий не потрібен, бо теоретично файл з кешем завжди буде мати однакову назву (назви хешуються) та просто запишеться поверх старого, хоча не впевнений (тут я подивлюся, щоб точно визначити, але то за тижнів півтора, якщо сміття збиратиметься, а поки є цікавіші справи).
до речі, файли кешу зберігаються в папці cache у відповідних підпапках, які названі за двома першими символами із назви-хешу самих кешованих шматків, себто не так уже й складно буде шукати ці файли.
Сторінки: 1 2
