тут ми перевіряємо, чи існує інстанс, якщо так – звертаємося до нього напряму (в кометарях вказано, що так – швидше), якщо ж ні – створюємо новий. після того, у моєму випадку, йшов шмат такого коду:

// 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 – це ідентифікатор (назва).

файловий кеш у kohana

файловий кеш у kohana

якщо такий блок існував, я його напряму вставляв у свій темплейт (точніше присвоював змінній з темплейта). далі було таке:

// 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 у відповідних підпапках, які названі за двома першими символами із назви-хешу самих кешованих шматків, себто не так уже й складно буде шукати ці файли.

Comments closed.