Neukládá se mi cache (do FileStorage)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Peetee
- Člen | 75
Ahoj,
už asi hodinu koukám na následující kód a nějak mi uniká, kde je chyba:
$cache = Nette\Environment::getCache('n1');
Nette\Debug::barDump($cache, 'C1');
$cache['a'] = 'b';
Nette\Debug::barDump($cache, 'C2');
výpis v barDump:
C1
Nette\Caching\Cache(4) ▼
{
"storage" private => Nette\Caching\FileStorage(3) ▼
{
"dir" private => "<cesta>\temp\cache" (70)
"useDirs" private => TRUE
"journal" private => Nette\Caching\FileJournal(9) ►
}
"namespace" private => "n1\x00" (3)
"key" private => NULL
"data" private => NULL
}
C2
Nette\Caching\Cache(4) ▼
{
"storage" private => Nette\Caching\FileStorage(3) ▼
{
"dir" private => "<cesta>\temp\cache" (70)
"useDirs" private => TRUE
"journal" private => Nette\Caching\FileJournal(9) ►
}
"namespace" private => "n1\x00" (3)
"key" private => "a"
"data" private => "b"
}
Pokud tento skriptík spustím víc než jednou, tak by se v barDumpu mělo zobrazit již dvakrát stejný hodnoty „key“ a „data“. Nerozumím tomu, proč je při prvním spuštění NULL.
- kravčo
- Člen | 721
Peetee napsal(a):
Pokud tento skriptík spustím víc než jednou, tak by se v barDumpu mělo zobrazit již dvakrát stejný hodnoty „key“ a „data“. Nerozumím tomu, proč je při prvním spuštění NULL.
Nie. Premenné $key
a $data
sú pomocné premenné
Cache
a uchovávajú posledný kľúč a hodnotu, s ktorými keš
pracovala (logicky sú teda pri prvom spustení NULL).
Nevypisuj keš, ale len jej položku; na získanie hodnoty z keše neexistujú iné metódy ako si vyžiadať konkrétny kľúč…
$cache = Nette\Environment::getCache('n1');
Nette\Debug::barDump($cache['a'], 'C1');
$cache['a'] = 'b';
Nette\Debug::barDump($cache['a'], 'C2');