Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Nette Framework: Cache

Tomáš Kafka aura:63
23. 6. 2009 17:18

Tagy? Super!

Jsem rád že se v nějakém frameworku objevila tagovaná cache – už dlouho přemýšlím, že by se velmi hodila do Drupalu, jenže tam by přidání tagů do cache vyžadovalo přepsání tak 90% jádra a modulů (aby svůj kešovaný obsah správně tagovaly).

Ale zpět k tématu – Davide, přemýšlel jsi i nad tím, že by klíčem do cache nebyl jen string, ale množina stringů (tagů)? Umožnilo by to třeba cachovat obsah bloků které jsou závislé na uživateli, nějak takhle:

$cache->put(
        array(
                'module' => 'MyModule',
                'blockId' => $blockId,
                'user-id' => $currentUserId
        ),
        $cachedContent,
        $cacheTimeout
        );

I když, asi by to šlo řešit i nějakým wrapperem nad cache co by tu array nějak jednoznačně kanonizoval do stringu (hmm, serialize()?)…

A jinak, těším se na lambdy v PHP 5.3, to wrapování funkcí mi přijde jako děsná duplikace kódu:

function GetArticles($from, $to) {

        $cache->get(
                'myKey',
                function ($from, $to) {
                        ...
                        return $articles;
                }
        );
}
JD
JD (neregistrovaný) ---.sh.cvut.cz
26. 6. 2009 10:11

Re: Tagy? Super!

V drupalu:

Pri ukladani dat: cache_set(‚kaf­ka:article:‘ . $node->nid, $data); 

Pri udalosti, kdy musim invalidovat cache: cache_clear_a­ll(‚kafka:arti­cle:‘ . $node->nid) 

Pripadne, kdyz chci smazat vse s article: cache_clear_a­ll(‚kafka:arti­cle:‘, ‚cache‘, TRUE); 

Jak se to efektivne lisi od tagu?

Zasílat nově přidané příspěvky e-mailem