Nette\Caching\Cache::clean() – mazat pouze namespace

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

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
+
0
-

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)

Honza Kuchař
Člen | 1662
+
0
-

Souhlas.

redhead
Člen | 1313
+
0
-

Petr Motejlek napsal(a):
Ejhle, ona to je metoda clean, ne clear ;).

Já jsem docela pro to přejmenovat na clear, protože clean sem snad nikde neviděl jako metodu na vymazání.

Petr Motejlek
Člen | 293
+
0
-

Nebo remove ;)

Ondřej Brejla
Člen | 746
+
0
-

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() :-)

redhead
Člen | 1313
+
0
-

co se týče těch kolekcí, tak pro všechny prvky bejvá removeAll(), ale clear() je kratší a hezčí :)

Ondřej Brejla
Člen | 746
+
0
-

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
+
0
-

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() ;)

Panda
Člen | 569
+
0
-

clean, clear, erase, removeAll, deleteAll, purge, flush, moveToDevNull… Názvů je kopa a každému se bude líbit něco jiného. Není to jedno, pokud název bude výstižný a konzistentní v celém frameworku (popř. i s PHP, ale to je spíš sci-fi: PHP není konzistentní ani samo v sobě)?

Ondřej Brejla
Člen | 746
+
0
-

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)

redhead
Člen | 1313
+
0
-

„ten správnej pocit“ ve mě vyvolává spíš clear než clean (asi, že to mám spojeno s jednou neoblíbenou domácí prací), ale argument od Pandy beru – neuvědomil jsem si, že těch tříd je víc.. :)

Tomik
Nette Evangelist | 485
+
0
-

OT:

<?php
  $cache->cleanAndClear(array(\Nette\Caching\Cache::ALL => true));
?>

.. A máš to vychytaný!

redhead
Člen | 1313
+
0
-

Zpátky k tématu:

Pěkně prosím, prstíčkem hrabu, implementujte to. Nechce se mi všechno tagovat, jen kvůli mazání jednotlivých namespace!

Editoval redhead (21. 1. 2010 19:20)

Honza Marek
Člen | 1664
+
0
-

Cože ono to tak nefunguje? V tom případě teda hlasuju +1!

MIKI
Člen | 34
+
0
-

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)