Autor | Zpráva | ||
---|---|---|---|
Str4wberry Profil |
Jelikož se stránky s Nette načítají pomalu, nabízí se použít keš.
To funguje hezky a jednoduše (stačí obalit layout šablony do {cache} ) a výsledné HTML jednotlivých stránek se automaticky ukládá do jednotlivých souborů.
A tak si říkám, proč při požadavku na (už kešovanou) stránku zbytečně zdržovat načítání zapínáním Nette, když by stačilo akorát vysypat soubor z keše. Nějak takto: if (file_exists("cache/pozadovana-url") { // vypsání z keše } else { // načtení Nette a běžné zpracování požadavku + vytvoření keše } Ale jak se dopátrat k tomu souboru; jeho název je totiž nejspíš nějaký hash… Existuje nějaké elegantní řešení? Jak byste to řešili vy? |
||
DJ Miky Profil |
#2 · Zasláno: 28. 6. 2013, 11:34:06
Mělo by stačit explicitně specifikovat nějaký název kešovaného bloku pomocí
{cache $key} : http://doc.nette.org/cs/caching#toc-cachovani-v-sablonach
Klíč pak bude jeho MD5 hash (případně MD5 hash ze serialize() , pokud to není skalár): https://github.com/nette/nette/blob/master/Nette/Caching/Cache.php#L282
A název souboru bude mít podtržítko na začátku: https://github.com/nette/nette/blob/master/Nette/Caching/Storages/FileStorage.php#L389 Jestli je to dobrý nápad nebo ne, to nedokážu posoudit. |
||
Str4wberry Profil |
#3 · Zasláno: 28. 6. 2013, 12:14:45
Děkuji za radu. Bohužel to vypadá, že to takto nepůjde. Ten soubor má při každém vytvoření cache (po smazání veškeré cache) jiný název, takže to asi „
_md5(název) “ nebude.
|
||
Časová prodleva: 11 let
|
0