Cache::clean() nemaže len svoj namespace
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kravčo
- Člen | 721
Prišiel som na zaujímavú feature Nette keše:
<?php
use Nette\Caching\Cache,
Nette\Caching\Storages\FileStorage;
$storage = new FileStorage(TEMP_DIR);
$cache1 = new Cache($storage, 'ns1');
$cache2 = new Cache($storage, 'ns2');
$cache1['key'] = 'Hello';
$cache2['key'] = 'World';
$cache1->clean(array(Cache::ALL => TRUE)); // all
$cache2->release();
Assert::same( 'World', $cache2['key'] ); // tůdle, je to NULL
Rovnako to všade zmaže rovnaký tag…
Je to takto v poriadku? Ak áno, prečo?
Editoval kravčo (2. 5. 2011 0:14)
- Filip Procházka
- Moderator | 4668
Ta metoda clean totiž operuje nad celým FileStorage. Teoreticky, pokud vytvoříš jiný storage (s vlastním journalem) tak se to tak chovat nebude.
Každopádně je to kapánek matoucí :)
- David Grudl
- Nette Core | 8228
Problém je v tom, jak tohle vyřešit na úrovni úložišť, protože to musí být jednotné.