Kešování – Cash journal has not been provided

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mrataja
Člen | 57
+
0
-

Snažím se rozchodit kešování, což není žádný problém, ale zasekl jsem se na tagování. Všechny novinky by měli mít tag „novinky“ a chtěl bych je tak všechny najednou invalidovat. Nicméně při použití, které uvádím dostávám chybu „CacheJournal has not been provided“. Verze nette prefixovaná, 2.0. Používám to celé špatně?

// Bootstrap
$storage = new NFileStorage(ROOT.'/tmp');
$cache = new NCache($storage);

$loader = new NRobotLoader; // vytvoříme instanci loaderu
$loader->addDirectory(ROOT . '/libs'); // přidáme složku kterou má RobotLoader indexovat
$loader->setCacheStorage($storage);
$loader->register(); // zaregistrujeme RobotLoader

// Prace s cache
$cache->save('novinky-'. $row->id, $sablona, array(NCache::TAGS => array('novinky')));
Etch
Člen | 403
+
+2
-

Pokud chceš využívat tagy, tak je nutné mít nastavený FileJournal. Použij něco na způsob:

$journal = new NFileJournal(ROOT.'/tmp');
$storage = new NFileStorage(ROOT.'/tmp', $journal);
$cache = new NCache($storage);