Zadejte hledaný výraz...

Problém s Cache

Dobrý večer. Jde nějakým příkazem invalidovat cache BasePresenteru nebo v nejhorším případě jeho cachování vypnout?
9. 1. 2014 21:56:35
https://webtrh.cz/diskuse/problem-s-cache#reply983882
Marek
verified
rating uzivatele
(2 hodnocení)
9. 1. 2014 22:08:00
Co znamená invalidovat cache BasePresenteru? BasePresenter se sám necachuje (neinvaliduje), ale sám si v něm cachuješ nějaká data...
9. 1. 2014 22:08:00
https://webtrh.cz/diskuse/problem-s-cache#reply983881
Takhle. Přes administraci upravuji default.latte (frontend šablonu), ve které mám vloženo vlastní makro například {addContent}. To je zpracováváno a definováno v basePresenteru a vypíše obsah (články) z databáze. Problém je, že pokud například přes administraci přidám či upravím článek, stále se zobrazuje původní obsah a makro v basePresenteru nevypíše nový obsah frontendu, ale nějakou původní verzi, kterou má uloženu.
Edit: Pravděpodobně asi ale opravdu jde o cachování samotného souboru default.latte. Protože když změním {addContent} na {addCon} aby vyhodil chybu, zpětně to opravím, tak se mi zobrazí správná verze.
9. 1. 2014 22:15:58
https://webtrh.cz/diskuse/problem-s-cache#reply983880
Marek
verified
rating uzivatele
(2 hodnocení)
9. 1. 2014 22:22:49
1)
Tak mu nastav expiraci...
2)
Další možnost je využít Tagy
V administraci po editaci zavoláš po uložení a redirectu
Druhý příklad je lepší, protože se ti cache pak bude invalidovat sama :)
9. 1. 2014 22:22:49
https://webtrh.cz/diskuse/problem-s-cache#reply983879
Dobře. Bohužel jsem moc nepochopil kde přesně použít $this->cache->save. Přímo u funkce pro vkládání článku do databáze? Nějak jsem zatím nikde nenatrefil na žádný příklad pro hlupáky jako jsem já :)
9. 1. 2014 22:52:13
https://webtrh.cz/diskuse/problem-s-cache#reply983878
Marek
verified
rating uzivatele
(2 hodnocení)
9. 1. 2014 22:56:13
ok, tak jinak :)
V administraci při prvotním vytvoření článku a po úspěšném uložení do db - $this->cache->save(...)
V tom tvém makru $this->cache->load(....)
V administraci po editaci článku $this->cache->clean(....)
Save ti to uloží do cache, load načte, a clean vyčistí (přepíše starou verzi za novou)
Je to jasnější? :)
9. 1. 2014 22:56:13
https://webtrh.cz/diskuse/problem-s-cache#reply983877
Myslím že jsme se asi špatně pochopili. S články samotnými problém není. Ty jsou definovány jako latte šablony, aby tam bylo možno použít vlastní makra. Problém je přímo s titulní stránkou jako takovou, kde je výpis ve stylu Titulek - Část obsahu - Titulek - Část obsahu... Nette si natáhne default.latte odněkud z cache a vykašle se na to, aby vygeneroval znovu vše podle makra {contentShow}, dokud ručně nezměním obsah jako takový. Takže buď aby detekoval obsah s ohledem na kód vygenerovaný makrem, nebo tento soubor necachoval vůbec.
9. 1. 2014 23:35:31
https://webtrh.cz/diskuse/problem-s-cache#reply983876
Marek
verified
rating uzivatele
(2 hodnocení)
9. 1. 2014 23:42:48
Vždyť to je jedno, princip je stejný... Samotný článek jsme vyřešili :D A co se týče seznamu článků tak je to to samý, jen si to do cache uložíš pod jiným klíčem (třeba articles), a k přídání / editaci samotného článku přidáš další tag 'articles', aby se přegeneroval. Popřípadě můžeš do cache článků přidat pole s články do Cache::ITEMS. S tím, že pokud se jeden článek změní, cache vyexpiruje a přegeneruje se. Silně doporučuju pročíst
Cache | Nette Framework
http://doc.nette.org/cs/2.1/caching#toc-expirace-a-invalidace
9. 1. 2014 23:42:48
https://webtrh.cz/diskuse/problem-s-cache#reply983875
James_Scott
verified
rating uzivatele
(7 hodnocení)
9. 1. 2014 23:50:29
Přelétl jsem to letmo - ale není spíš problém s kešováním latte šablon (defaultně ve složce /temp)? Vyzkoušej přidat článek a promazat obsah složky /temp.
9. 1. 2014 23:50:29
https://webtrh.cz/diskuse/problem-s-cache#reply983874
No nic. Dneska na to už kašlu. Nemoc a únava asi dělá své. Snad se mi ráno povede a budu se moct pochlubit a ujistit se, že nejsem tak natvrdlý jak to dneska vypadá :D
---------- Příspěvek doplněn 10.01.2014 v 00:21 ----------
Napsal James_Scott;1042126
Přelétl jsem to letmo - ale není spíš problém s kešováním latte šablon (defaultně ve složce /temp)? Vyzkoušej přidat článek a promazat obsah složky /temp.
No je to tak. Osobně mám problém i v editoru, kdy změním něco ve vlastním makru. Aby se změna projevila, musím nejprve Cache těchto šablon smazat, nebo donutit Nette k výjimce aby to vygenerovalo nový obsah.
10. 1. 2014 00:01:53
https://webtrh.cz/diskuse/problem-s-cache#reply983873
No je to tak. Osobně mám problém i v editoru, kdy změním něco ve vlastním makru. Aby se změna projevila, musím nejprve Cache těchto šablon smazat, nebo donutit Nette k výjimce aby to vygenerovalo nový obsah.
---------- Příspěvek doplněn 10.01.2014 v 12:06 ----------
No nic. Vyřešil jsem to zatím tak nějak provizorně. Jednoduše se smaže v temp/cache/_Nette.FileTemplate veškerý obsah. Udělal jsem si na to funkci, kterou budu volat vždy po změně obsahu hlavní stránky. Snad se mi čase podaří přijít na to, jak invalidovat určitý soubor šablony. A to konkrétně _Homepage.default.latte-...
10. 1. 2014 00:22:32
https://webtrh.cz/diskuse/problem-s-cache#reply983872
Pro odpověď se přihlašte.
Přihlásit