Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SMARTY] Błąd cache'u
NickOver
post 26.02.2015, 09:18:09
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Cześć.
Mam problem z cache'owaniem. Używam smartów 3. Problem polega na tym iż przy włączonym cacheowaniu cały czas ładuje się ta sama strona.
Strona ładuje się w taki sposób:

Główny plik tpl ładuje wszystkie pliki (menu, header itp.) ładowany jest też plik który dostaje ścieżkę do konkretnego widoku z konkretnego modułu.

Niestety musi to być tak zrobione ponieważ strona polega na modułach. Mimo tego, zmiany adresu nie powodują zmiany strony.
Dawałem przy plikach do includowania treści strony nocaching, lecz niestety to nie pomaga.
Macie jakieś pomysły?
Dodam że strona stoi i będzie stać na raspberry PI B+
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 09:36:42
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wydaje mi się że musisz zrobić tak że musisz najpierw przeparsować content dynamiczny a potem wstawić go do głównego szablonu jako zmienną.

Ew. używać extends i parsować tylko ten "najniższy" szablon czyli content strony, a extends robisz na main_layput.
Go to the top of the page
+Quote Post
NickOver
post 26.02.2015, 09:46:54
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Próbowałem juz się bawić z cachowaniem tylko części tpl'ek. Niestety nic to nie daje.

Zapomniałem dodać pewną ważną ciekawostkę. Na raspberry cache nie działa, a na stacjonarce śmiga.
Na raspberry mam pehapa w wersji 5.4.36-0+deb7u3 i apacha w wersji 2.2.22


Ten post edytował NickOver 26.02.2015, 09:52:06
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 09:57:49
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokaż jakiś przykład jaką masz strukturę TPL jak dołączasz pliki, co parsujesz
Go to the top of the page
+Quote Post
NickOver
post 26.02.2015, 10:13:41
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Główny plik tpl:
  1. {config_load file="config/view.conf"}
  2.  
  3. {include file="header.tpl"}
  4.  
  5. {include file="content.tpl"}
  6.  
  7. {include file="footer.tpl"}


plik content.tpl
  1. <div id="wrapper">
  2. {include file="phpVarToJs.tpl"}
  3. {include file="navigation.tpl"}
  4. <div id="page-wrapper">
  5. <div class="container-fluid">
  6. {if $displayTpl != NULL}
  7. {include file="$displayTpl/content.tpl"}
  8. {else}
  9. {include file="default.tpl"}
  10. {/if}
  11. </div>
  12. </div>
  13. </div>


zawartość pliku który includuje się jeśli jest $displayTpl
  1. {assign var=view value=$dataForModule.device.view}
  2. {assign var=href value=$dataForModule.device.linkToTpl}
  3. {assign var=file value="$href/$view.tpl"}
  4. {include file="$file"}
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 10:27:36
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wg. mnie masz zły flow. Powinieneś wykożystać {extends} i parsować tylko content.tpl zamiast główny.

Wtedy powinieneś móc sterować tym co robi cache.
Go to the top of the page
+Quote Post
NickOver
post 26.02.2015, 10:43:27
Post #7





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Mogłbyś powiedziec coś wiecej na temat tego extends?
Niestety manual smartów za dużo mi nie mówi.
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 10:51:26
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


http://www.smarty.net/inheritance -> Example With Inheritance
Go to the top of the page
+Quote Post
NickOver
post 26.02.2015, 14:37:36
Post #9





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Problem rozwiązałem trochę na opak. Dla ciekawskich pozmieniałem trochę ustawienia smartów w następujący sposób:
  1. const SmartyForceCompile = false;
  2. const SmartyDebugging = false;
  3. const SmartyCaching = 0;
  4. const SmartyCacheLifeTime = 0;


Dzięki wielkie Pyton za tak aktywny udział w temacie smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 15:16:15
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Ale to co Ty zrobiłeś to wyłączenie cache całkowicie. A raczej nie to chciałeś osiągnąć wink.gif

PS. Jak możesz jeszcze zmienić to weź Twig, tam takich problemów nie ma wink.gif Ew. lżejszy Blade od Laravel'a
Go to the top of the page
+Quote Post
NickOver
post 26.02.2015, 16:40:54
Post #11





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Zmienić nie mogę. Za dużo widoków.

No własnie wyłączyłem ale nie całkowicie ponieważ wcześniej strona ładowała się koło 6-7 sekkund, a teraz może pół sekundy smile.gif
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: 14.08.2025 - 13:47