Nette\Caching\Cache::clean() – mazat pouze namespace
- Wosonj
- Člen | 36
Podle mne by bylo logický, aby tento kus kódu mazal pouze vybraný namespace a ne kompletně celou cache:
<?php
$cache = \Nette\Environment::getCache('myNamespace');
$cache->clean(array(\Nette\Caching\Cache::ALL => true));
?>
Pokud pominu https://forum.nette.org/…te-namespace jedná se o nedokumentovanou vlastnost…
- Petr Motejlek
- Člen | 293
Souhlas, když volám nad instancí cache pro určitý namespace metodu clear(), tak nikdo nečeká, že to smaže celou cache ;).
EDIT: Smazat úplně všechno by mělo
Environment::getCache()->clear();
EDIT2: Ejhle, ona to je metoda clean, ne clear ;).
Editoval Petr Motejlek (15. 12. 2009 17:25)
- Ondřej Brejla
- Člen | 746
remove()
se většinou v kolekcích a podobných úložištích
používá k odstranění jednoho prvku…pokud chci odstranit vše, určitě
je lepší clear()
:-)
- Ondřej Brejla
- Člen | 746
Nejlépe řečeno bývají implementovány obě možnosti s „téměř“
identickou funkčností ;-) Ale clear()
je mnohem více
sexy :-D
- Petr Motejlek
- Člen | 293
Když tady tak hezky slovíčkaříme, obvykle když je add() metoda pro přidání, tak je remove() metoda pro odebrání (removeAll() pro odebrání všeho). My máme ale save(), takže by mohlo fungovat i třeba erase() ;)
- Ondřej Brejla
- Člen | 746
A nebo třeba delete()
, destroy()
apod. :-D Ne, to
už je vážně moc…;-)
Ale jak píše Panda, jedno to v podstatě je. Jen mi šlo o to, že
remove()
bývá používáno pro jeden prvek, takže když už, tak
removeAll()
. Ale klidně to může být cokoliv, co bude
v člověku vyvolávat „ty správné pocity“…abych tak řekl…:-)
EDIT: moveToDevNull
je luxusní :-D
Editoval Ondřej Brejla (15. 12. 2009 22:07)
- MIKI
- Člen | 34
Prekvapuje ma, ze viac ako polrok, a ziadna zmena :( A akosi som nezachytil vyjadrenie autora (Davida)
Prisiel som prestudovat forum, pretoze mi vyrazilo dych, ked
Environment::getCache('nieco')->clean(array(Cache::ALL=>true));
zmazalo cely cache a nie namespace.
Dlho mi v hlave vrtalo, ako to mazanie funguje, rozhodol som sa otestovat a
prekvapilo ma to :)
Ocakaval som, ze vyssie spomenuty kod zmaze len cache v namespace (zlozke) a ze
Environment::getCache()->clean(array(Cache::ALL=>true));
zmaze vsetky namespace (prip. som si nebol isty, ci bude mazat len premenne v „ziadnom namespace“).
Preto by som rad pripomenul a znova poziadal, aby sa aspon to s namespace implementovalo :) prip. pridat tu podmienku pre namespace.
Inak, pouzivam 0.9.5 verziu, takze ak to je v novsej verzii, tak napiste kde, a zamknite tento topic :)
[OT] moveToDevNull()
tak toto je fakt luxus ;) Asi si to
priclenim ako alias k clean() :D [/OT]
Editoval MIKI (16. 10. 2010 15:40)