Cache metoda na získání času vytvoření cache

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Filip Procházka
Moderator | 4668
+
0
-

Zdravím,
jak už název vypovídá…

Myslím, že by se hodila metoda na získání času vytvoření cache :)

$cache['klic'] = array('pozdrav' => 'čauky');
$cache->getCreatedTime('klic'); // @return DateTime|int
kravčo
Člen | 721
+
0
-

Odporúčam, aby si si veci, ktoré sa ti hodia, doprogramoval sám a publikoval (web/blog/fórum/pullrequest). Myslím, že je málo takých, ktorí majú čas pochopiť a implementovať niečo, čo sa hodí tebe, ani v prípade že je to fakt jednoduché:

<?php

// Čas vytvorenia keše,
//   prípadne posledného načítania v prípade použitia Cache::SLIDING
class FileStorageWithTime1 extends \Nette\Caching\FileStorage
{
    public function getCreateTime($key)
    {
        return filemtime($this->getCacheFile($key));
    }
}

Alebo inak:

<?php

// Čas vytvorenia keše, vo všetkých prípadoch
class FileStorageWithTime2 extends \Nette\Caching\FileStorage
{
    public function read($key)
    {
	list($data, ) = parent::read($key);
        return $data;
    }

    public function write($key, $data, array $dp)
    {
	parent::write($key, array($data, time()), $dp);
    }

    public function getCreateTime($key)
    {
	list(, $time) = parent::read($key);
        return $time;
    }
}
Filip Procházka
Moderator | 4668
+
0
-

Vidíš to mě nenapadlo! A takové pěkné řešení :) měl bych se jít vyspat…