začátky s cache a fallback

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

Ahoj, právě se snažím rozchodit cache a trochu pochopit její fungování.

asi jako první se zeptám zda se nedá jako FileStorage použít relativní cesta ?

a poté řeším funkci load kdy jsem zjistil, že když zavolám fallback() fci a cache neexistuje tak jí automaticky vytvoří, nicméně nevím jak jí mohu nastavit např expiraci atd.. v dokumentaci jsem četl že se do fce přidá &dependencies, ale nevím jak jej přesně použít.

dá se nějak obejít to automatické uložení cache při její neexistenci ?

Moc díky za rady :)

David Matějka
Moderator | 6445
+
0
-

asi jako první se zeptám zda se nedá jako FileStorage použít relativní cesta ?

nepotrebujes to – FileStorage nikdy (pokud tedy opravdu nevis, co delas) nevytvarej rucne. Vyzadej si Nette\Caching\IStorage jako zavislost.

v dokumentaci jsem četl že se do fce přidá &dependencies, ale nevím jak jej přesně použít.

$cache->load($key, function (&$deps) {
	$deps[Cache::EXPIRATION] = '1 hour';
	....
	return $data;
});

dá se nějak obejít to automatické uložení cache při její neexistenci ?

nechapu, co chces.

kleinpetr
Člen | 480
+
0
-

Vytvářím si fileStorage takto na xamppu:

$storage = new Nette\Caching\Storages\FileStorage($_SERVER['DOCUMENT_ROOT'].'/projekt/temp/mycache');

Jinak jsem měl na mysli jestli se dá nějak udělat, že ikdyž se ta cache nenajde a spustí se fallback fce tak se jen vypíše to co vrací, ale neuloží se do cache

Editoval kleinpetr (18. 3. 2015 17:56)

Zax
Člen | 370
+
0
-

dá se nějak obejít to automatické uložení cache při její neexistenci ?

$result = $cache->load($key);
if($result === NULL) {
	// do whatever
}
David Matějka
Moderator | 6445
+
0
-

Proc tu storage vytvaris rucne? ty nepouzivas zbytek nette?

kleinpetr
Člen | 480
+
0
-

Už jsem se dočetl, že si ho můžu vyžádat přes DI :) díky

Editoval kleinpetr (18. 3. 2015 18:45)

Mysteria
Člen | 797
+
0
-

Žádný problém v tom není, prostě si Nette\Caching\IStorage předej pomocí DI přes konstruktor do modelu jako třeba databázi.

kleinpetr
Člen | 480
+
0
-

Jojo, už mi to běží :)