Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gdzie wcisnąć cache?
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
Neotion
Jak w temacie

Dokładnie mam dylemacik gdzie tzn obsługę cache'u dać do modelu (np klasy pobierającej z bazy artykuły) który enkapsuluje mi dane (potem łatwiej będzie się odwoływać do tego samego cache z różnych miejsc) czy też każdy kontroler będzie musiał sam o to zadbać.

Byłbym bardziej za drugim rozwiązaniem, choć z drugiej strony jakbym miał użyć modelu również do administrowania danymi to cache wewnątrz modelu wydawałby się rozsądniejszy.

Co poradzicie?
LBO
W akcjach - ZYX napisał kiedyś, że najlepiej jest cache'ować widok (output skryptu).
Polecam Tobie Zend_Cache - klasa ta posiada elastyczny system tagów, pozwalający w łatwy sposób skasować, jedno lub wiele plików przechowujacych cache. Jest również (zgodnie z zamierzeniem developerów) bardzo prosta i obsługa niej nie powinna Tobie sprawić problemów.

Oczywisście, jak siś uprzesz, że chcesz cache'ować model, to polecam ZYX'ową Open Power Driver z wbudowanym cache zapytań - więc sprawa byłaby załatwiona z najniższego możliwego poziomu.
eai
Ja stosuje cache w 2 miejscach.
1- pobieranie danych z mySQL
2- cachowanie calego widoku (wedlug: suma kontrolna tablicy tagow)
dr_bonzo
Sprawdz, ktora czesc generowania strony zajmuje ci najwiecej czasu (templaty, DB, obliczenia w php) i tam wstaw cache. No i sprawdz oczywiscie rezultaty wprowadzenia cachu.
Neotion
Ciekawe uczucie surfowa pod linksem, pady mi x'y sad.gif

ale jezeli chodzi o ten cache mam wrazenie ze nikt nie przeczytal mojego postu:P

@LBO: cache mam napisany wlasny, dosyc szybki jak mi sie wydaje no i wiadomo: moj interfejs bedzie dla mnie najwygodniejszy smile.gif

Aby cache'owac baze danych bede musial napisac modul do adodb (bo uzywam lite jako abstrakcji bazy danych)

Ale nadal nie wiem jak z modelem: enkapsuluje mi on dane ale czy on sam w sobie powinien zadbac o cache'owanie danych ktoe pobiera czy tez zwyczajnie pobrac dane i je wyrzucic nie martwiac sie o szybkosc (a za cacheowanie tego odpowiadalby kontroler)
Byloby to z 1 strony szybkie (nie musze sie odwolywac caly czas do modelu a tylko wykorzystac cache) ale z drugiej strony musialbym obslge tego cache'u implementwac w kazdym kontrolerze wykorzstujacym ten model...

Jeszcze za to sie nie wzialem tak do konca (pelne MVC) ale w koncu przyjdzie na to czas smile.gif
UDAT
Cytat(Neotion @ 1.11.2006, 16:19:18 ) *
Ale nadal nie wiem jak z modelem: enkapsuluje mi on dane ale czy on sam w sobie powinien zadbac o cache'owanie danych ktoe pobiera czy tez zwyczajnie pobrac dane i je wyrzucic nie martwiac sie o szybkosc (a za cacheowanie tego odpowiadalby kontroler)
Jeszcze za to sie nie wzialem tak do konca (pelne MVC) ale w koncu przyjdzie na to czas smile.gif


Podobne problemy są z logowaniem, ACL, itd.

Używam do tego narazie phpAspect, dopóki nie napiszę czegoś bardziej rozbudowanego ( większości ludzi wystarcza phpAspect, mi nie rolleyes.gif ).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.