Forum » TYPO3 » Ogólne
Temat z wieloma odpowiedziami

Czyszczenie kesza


Autor Wiadomość
Napisane: 14.01.2010 [12:32]
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
Witam,
zastanawiam się czy jest możliwe czyszczenie kesza - całej strony z poziomu kodu php, tzn czy są jakieś metody których można użyć do tego ...

Do tej pory robiłem tak ze jak wprowadzam zmiany na jakiejś podstronie to w BE czyszczę ręcznie kesz dla tej strony. Teraz mam potrzebę czyścic na zadanie tego kesza, np. user doda jakiś wpis i chce wyczyścić stronę główna i np. stronę blog.

Jest coś takiego ?
Napisane: 14.01.2010 [13:00]
dpacholczyk
zarejestrowany: 17.09.2008
Posty: 1073
Chodzi ci o wyczyszczenie cache`u dla pojedynczej PODstrony a nie globalnie dla całej witryny ?

Jeżeli tak to w BE gdy jesteś w module PAGE tuż pod ikonką której używasz (duża błyskawica) masz ikonkę małej błyskawicy na kartce. Ona służy do wyczyszczenia cache`u tylko dla tej strony.

Certified Level 2 TYPO3 Night Crew Member.

http://typo3blog.pl
Napisane: 14.01.2010 [13:12]
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
dokładnie o to mi chodzi tyle że chcę uzyskać ten sam efekt z poziomu kodu php. Ktoś dodaje wpis i w kodzie chce wywołać metodę do wyczyszczenia kesza dla całej strony.
Napisane: 14.01.2010 [13:21]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
Do tego służy komenda w TSconfigu strony, na ktoej znajdują się rekordy:


TYPOSCRIPT
TCEMAIN.clearCacheCmd = 123,124

(czyli podajesz uidy stron do wyczyszczenia, działa)



Mój Muminek, moja Ula odeszła icon_frown.gif [']
Napisane: 14.01.2010 [13:57]
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
dzięki za info, znalazłem dodatkowo jak to zrobić z poziomu php'a

$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->clear_cacheCmd(1); // 1 - id strony


Póki co działa ...
Napisane: 14.01.2010 [22:52]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
radone napisał/a

dzięki za info, znalazłem dodatkowo jak to zrobić z poziomu php'a
PHP
$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->clear_cacheCmd(1); // 1 - id strony



A tak z ciekawości spytam, kiedy wywołujesz tą metodę ?

Mój Muminek, moja Ula odeszła icon_frown.gif [']
Napisane: 15.01.2010 [12:19]
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
w skrypcie odpalanym w cronie, w nocy wykonuje kilka operacji i zależy mi na tym aby odświeżyć strony. Do tej pory często dane były nieaktualne.
Napisane: 15.01.2010 [13:45]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1356
To trochę na siłę rozwiązanie, przy takim podejściu strony wprowadzone rano będą widoczne dopiero następnego dnia (po wywołaniu cronu). Użycie clearCacheCmd wymusi wyczyszczenie odpowiednich obszarów cache każdorazowo po modyfikacji rekordów w danym fragmencie drzewa.

Mój Muminek, moja Ula odeszła icon_frown.gif [']
Napisane: 15.01.2010 [13:57]
dpacholczyk
zarejestrowany: 17.09.2008
Posty: 1073
od tego całego skryptu rozwiązanie biesiora jest dużo lepsze.

jak i to do Ciebie nie przemawia proponuje skrócenie czasu cache`u do powiedzmy godziny.

Certified Level 2 TYPO3 Night Crew Member.

http://typo3blog.pl
Napisane: 15.01.2010 [14:49]
radone
Twórca tematu
zarejestrowany: 21.10.2009
Posty: 6
biesior napisał/a

To trochę na siłę rozwiązanie, przy takim podejściu strony wprowadzone rano będą widoczne dopiero następnego dnia (po wywołaniu cronu). Użycie clearCacheCmd wymusi wyczyszczenie odpowiednich obszarów cache każdorazowo po modyfikacji rekordów w danym fragmencie drzewa.


masz racje, tyle że system wykonuje pewne operacje raz dziennie i później te dane są wyświetlane przez cały dzień do momentu ponownego uruchomienia crona.

a to co mi poradziłeś:
"TCEMAIN.clearCacheCmd = 123,124"

to skąd system będzie wiedział ze coś się zmieniło z poziomu bazy danych, np. jeśli skrypt wykona jakiś update rekordu ... rozumiem jeżeli bym coś zmienił w BE to takie rozwiązanie zadziała. Może się mylę ?

[Ten temat był edytowany 1 razy. Ostatnio 15.01.2010 o 14:50.]