Cache tagy přes FileJournal?

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

Zdravím, potřeboval bych poradit nebo alespon popostrčit (jsem nový v Nette a bezradný aktuálně :-*).
K problému:
Na webu mám novinky a pokud přidám v adminu novou novinku tak aby se invalidovalo cache jen pouze u jedné novinky.Potřeboval bych zachovat tyto vlastnosti:
Cache novinek se bude ukládat do složky (news/cache) podle id.

Mám něco jako tento kod, ale nefunguje..

$journal = new \Nette\Caching\Storages\FileJournal(WWW_DIR . '/../news');
$storage = new \Nette\Caching\Storages\FileStorage(WWW_DIR . '/../news/cache', $journal);
$this->cache = new \Nette\Caching\Cache($storage);

		$key = "new-".$id;

		// todle aby se provadelo pouze v adminu
		$this->cache->clean(array(
    Cache::TAGS => array($key) // jak vymazat, pouze jednu novinku?
));

		// update novinky

	----

		// a todle ve frontu
		$data = array(.....);

		$novinka = $this->cache->load($key);

		if($novinka === null) {
	    	$this->cache->save($key, $data,
        array(Cache::TAGS => array("news")));
		}
		}

Je to hrubý nastřěl..něco dělám špatně a nejspíš nechápu podstatu jak invalidovat jen pouze jednu položku..
PS: používám starší verzi Nette [po x letech sem šel dodělat projekt :-)], kdyžtak můžu upřesnit..
Děkuji za odpovědi.

Editoval qvio128 (25. 5. 2015 17:39)

David Matějka
Moderator | 6445
+
+1
-

Pro smazani konkretniho klice slouzi metoda remove, metoda clean maze dle ruznych podminek (priorita nebo tagy) a jelikoz ale ukladas k novince pouze tag news, nemuzes smazat del tagu new-$id

qvio128
Člen | 2
+
0
-

jo jasný, zkoušel jsem vše možné i blbosti..nakonec byla chyba v jiném kusu kodu..todle mi stačí…dík za tvůj čas a odpověd.