2014. március 28., péntek

PHP Snippet: View szintek gyorsítótárazása Phalcon-ban

Nem nagyon találtam meg a Phalcon dokumentációjában, csak némi google zaklatás után.

A helyzet: Phalcon View objektumban beállítható, hogy legyen gyorsítótárazva a nézet, de ekkor a legfelső szinttől a teljes tartalmat gyorsítótárazza. Ha a renderelési szint lejjebb van állítva, akkor nem készít gyorsítótár bejegyzést.

DE!!! Van egy a dokumentációban nem említett beállítás, amellyel megadható, hogy a View objektum melyik szintjének kimenete legyen eltéve a gyorsítótárba.

Ezt pedig a következőképpen lehetséges:

    $view->cache(array(
        'level' => \Phalcon\Mvc\View::LEVEL_ACTION_VIEW
    ));



----
Örültem a szerencsének!

-----------------------------------------------------------

Kiegészítés a fenti bejegyzéshez (2014-04-02)

Nem minden esetben történik meg a fentebb említetthez hasonló beállítások mellett a megfelelő View szintek gyorsítótárazása.

Az alábbi érdekes jelenségeket tapasztaltam ezzel kapcsolatban:
  1. Ha nincs megadva a ->cache() metódusban a gyorsítótárazandó szint, akkor csak a LEVEL_MAIN_LAYOUT renderelési View szint esetén fog automatikusan gyorsítótárazni.
    (Ez a pont inspirálta a fenti bejegyzést! :))
  2. A View esetén beállított renderelési szintnek nagyobbnak kell lennie a gyorsítótárazandó View szintnél, hogy beinduljon az automatikus gyorsítótárazás
  3. LEVEL_LAYOUT renderelési szint esetén bármilyen gyorsítótárazandó szint beállítása esetén két eredményt sikerült kicsiholnom:
    • Nem volt gyorsítótár bejegyzés létrehozva,
    • Vagy állandóan csak a LEVEL_LAYOUT szint lett csak a gyorsítótárba letárolva, annak ellenére, hogy pl. LEVEL_ACTION_VIEW lett megjelölve a gyorsítótárazandó View szintnek
  4. Egy hasznos, gyakorlati kísérletezgetések utáni tanács:Ha a ->cache() metódusban a 'level' értéknek TRUE-t adunk meg, akkor éppen a View-nak beállított renderelési szint teljes tartalma fog a gyorsítótárba bekerülni.
    Valamint, ha ugyanez a 'level' érték FALSE-t kap, akkor nem lesz gyorsítótár generálva!
Egyenlőre ennyi!