Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] cache w akcji
AxZx
post 20.10.2008, 12:14:46
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


witam

mam taka akcje domyślną:
  1. <?php
  2. public function executeIndex()
  3.    {
  4.              
  5.        //jezeli user jest zalogowany wyswietlana jest dla niego specjalna strona z przydatnymi dla niego informacjami
  6.        if($this->getUser()->isAuthenticated() AND $this->getUser()->getAttribute('idprofil'))
  7.        {
  8.            $this->forward('default', 'mojaStrona');
  9.        }
  10.        
  11.        //jezeli user nie jest zalogowany wyswietlana jest normalna strona glowna
  12.        else
  13.        {
  14.            $this->mainNiezalogowany();
  15.        }
  16.        
  17.    }
  18. ?>


w pliku cache.yml wlaczam cache dla akcji index.
tylko, że ja w tek akcji chce wyświetlać 2 różne widoki z różnymi danymi (różne zapytania).
jak to można zorganizować tak żeby gdy user już się zaloguje była zmiana cache?


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Ravv
post 25.08.2009, 08:04:26
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


W Symfony robię od niedawna, dlatego nie wiem czy mam wiedzę by doradzać (choć i tak post przeterminowany winksmiley.jpg ) - mimo wszystko uważam że...

Można Cachować akcję bądź nie cachować. Nie można (przynajmniej przez .yml) cachować dla zalogowanego i osobno dla zalogowanego. Przez .yml cachujemy albo całą akcję, albo w ogóle. Jak zcachuje się ta akcja - dla zalogowanego nigdy nie wyświetli Ci się to co masz w if'ie, ponieważ filtr Cache po wykryciu odpowiedniego adresu - wyświetli czysty HTML jaki zrobił, więc żadne if'y nie będą sprawdzane i wyświetli się to, co zcachowało.

Obejściem jest dodanie filtru, który działać będzie tak, że jeżeli wykryje gościa - bierze stronę z cache, a jeżeli użytkownika zarejestrowanego - ominie cache i wykona kod akcji.

Pozostaje też coś a'la cachowanie tylko fragmentów kodu akcji.

W sumie o tym wszystkim masz w dokumentacji tutaj
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.08.2025 - 09:29