Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Cache, [klasa] php5
nospor
post 5.07.2006, 18:32:33
Post #1





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




info
pobierz

Prezentuje moją nową klasę Cache. Jak nazwa wskazuje klasa służy do zarządania cachem. Do cache'u można wkładac stringi, tablice, liczby, obiekty. Dany obiekt cache'u należy zawsze do jakiejś grupy lub do kilku grup. Gdy nie podamy grupy, obiekt trafi do grupy domyślnej.

Obiekty w cache'u mają swoją żywotność, którą można regulować według własnych potrzeb. Obiekty moga byc wazne przez sekundy, minuty, godziny, dni itp...
Dodatkowo można uzależnic obiekt od pliku zewnetrznego bądź też od kilku plikow. Cache straci wowczas swoją waznosc, gdy w danym pliku zewnetrznym pojawią sie jakies zmiany. Uzależnienie obiektu od kilku plikow moze byc przydatne, gdy np. tworzymy obiekt na podstawie kilku plikow xml.

Nazwy obiektów mogą byc rownież hashowane. Ma to powiedzmy zastosowanie przy cacheowaniu zapytan. Zamiast nazwy "select * from tabela order by alamakota", pojawi nam sie ladny hash smile.gif

Czyszczenie cache odbywa sie na 4 sposoby:
1) wyczyszczenie calego cache'u
2) skasowanie wybranego(ych) obiektu(ow)
3) wyczyszczenie wybranej (ych) grupy
4) obiekt traci swoją ważność


Zapraszam do używania, testowania i zgłaszania ewentualnych uwag/błędów.

edit:
począwszy od wersji 1.2 Cache dziala na zasadzie sterownikow I/O. Wraz z paczką dołączony jest sterownik działający na plikach oraz sterownik operujacy na pamieci, przez co obsluga Cache jest jeszcze szybsza.
Dodana zostala suma kotrolna, mająca swoje zastosowanie szczegolnie przy operacjach na pamieci.

edit (2006-09-08):
No i jest Cache ver. 2.0
Czemu taki przeskok w numeracji? Ano odszedlem "troche" od sposobu konfiguracji cache.
Wczesniej, aby moc dzialac na plikach i na pamieci trzeba bylo definiowac dwa obiekty Cache. Teraz mozliwe jest zdefiniowanie kilku sterownikow dla jednego obiektu Cache.
Wprowadzilem przymus definiowania grup (domyslnie definiowana jest jedna grupa jesli komus przymus nie odpowiada winksmiley.jpg ). Dzieki takiemu zastosowaniu mozna parametryzowac grupy, a co za tym idzie obiekty do nich przypisane. Mozna dla grupy okreslic jakie sterownik ma ja obslugiwac, jej czas zycia, sprawdzanie sumy, hashowanie i inne. Jesli w jakiejs chwili nam sie odmienia, ze configi zamiast na dysku maja byc zapisywane w pamieci, wystarczy wowczas tylko zmienic sterownik dla grupy, bez latania po wszystkich obiektach i zmieniania. Oczywiscie mozna zdefiniowac czas zycia obiektu w cache tylko dla niego, nadpisujac w ten sposob parametry grupy.
Teraz by pobrac obiekt z cache trzeba okreslic do jakiej grupy nalezy. Wczesniej tego nie trzeba bylo robic. No ale jest to niezbedne by zaladowac chociazby odpowiedni sterownik do obslugi obiektu.
Oczywiscie jak sie nie poda tego parametru, zaczytana zostanie grupa domyslna.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Posty w temacie
- nospor   Cache   5.07.2006, 18:32:33
- - NetJaro   Gratulacje! Ładny skrypt, podoba mi się cache...   5.07.2006, 18:45:27
- - nospor   Cytatpodoba mi się cache plików zewnętrznych Tę op...   5.07.2006, 18:52:51
- - orson   witam ... szkoda że tylko pliki a nie np. apc :/ ...   5.07.2006, 21:59:23
- - bigZbig   @nospor - pozwolilem sobie uruchomic ten przyklad ...   14.07.2006, 14:33:50
- - nospor   CytatZrezygnuj z ostrzeżen na rzecz wyjatkow....   14.07.2006, 15:09:02
- - bigZbig   Odpalilem raz skrypt potem odswierzylem widok i zo...   14.07.2006, 15:34:28
- - nospor   CytatCo do rzucania wyjatkow z byle powodu. To fak...   14.07.2006, 15:52:15
|- - bigZbig   Cytat(nospor @ 14.07.2006, 16:52 ) Pozaty...   14.07.2006, 16:26:33
- - nospor   hihi, http://pl.php.net/manual/pl/function.seriali...   17.07.2006, 09:43:47
- - bigZbig   Moglbys do tego dopisac hendlery sesji i mialbys w...   17.07.2006, 13:21:47
- - nospor   No dobra, no to jest kolejna wersja. Poprawki: - ...   17.07.2006, 15:05:57
- - Foxer   Klasa wygląda bardzo fajnie i tak samo działa, ale...   20.07.2006, 12:20:57
- - nospor   @Foxer a Ty wiesz, ze jak ja pierwszy raz widziale...   20.07.2006, 12:26:47
- - Foxer   Wad również nie widzę, same zalety . Poprostu patr...   20.07.2006, 12:42:25
- - nospor   No i jest ver. 1.2 Na sluszną uwagę nast...   8.09.2006, 19:38:24
- - gkeb   Klasa fajna, nawet bardzo. Zastanawia mnie tylko d...   10.09.2006, 13:56:51
- - nospor   CytatZastanawia mnie tylko dostepnosc u uslugodawc...   11.09.2006, 20:04:58
- - bigZbig   A czy dodanie tych kilku "&" nie pow...   13.09.2006, 08:32:35
- - nospor   CytatA czy dodanie tych kilku "&" ni...   13.09.2006, 08:59:05
- - maciu   super klasa, tylko przydałaby się jeszcze jedna fu...   10.10.2006, 15:38:02
- - nospor   CytatW tej chwili mozna ustawić jeden katalog w ko...   11.10.2006, 09:38:20
- - bigZbig   Wiesz czego mi tu tylko brakuje ? Inerfejsu dla st...   16.10.2006, 14:41:11
- - nospor   CytatInerfejsu dla sterownikówHmmm, rozwin swoj...   16.10.2006, 14:47:12
- - bigus   Mam taką sytuację, mam na stronie możliwość koment...   12.05.2007, 16:18:19
- - nospor   CytatA czy jest możliwość aby zrobi...   12.05.2007, 19:43:10
- - bigus   ok jakoś poszło ale jak chciałem to wykorzystać tu...   12.05.2007, 21:12:07
- - nospor   CytatFatal error: Cannot redeclare class cacheexce...   13.05.2007, 18:30:40
- - bigus   Problem był z ścieżkami;/ dzięki   13.05.2007, 19:51:00
- - wookieb   Chciałbym tutaj napomnieć o cachowaniu danych w pl...   7.02.2009, 16:34:07
- - rafalp   Chciałem przetestować klase @Nospor-a, czy ktoś kt...   11.02.2010, 22:05:35
- - Agares   Sam miałem dużo problemów z Cache, ten skrypt je r...   13.02.2010, 19:23:15
- - nospor   @rafalp wersja co ci wysłałem na maila zawiera mie...   15.02.2010, 20:46:11
- - holee   Witam; Właśnie próbuje ogarnąć tą klasę i prawdę ...   26.01.2011, 19:53:14
- - nospor   W miejscu $val = 'tutaj wyniki zapytania...   26.01.2011, 19:56:45
- - holee   Coś takiego ? Kod$val = $cache->Get...   26.01.2011, 20:04:00
- - nospor   Prawie dobrze. Nie: $val = a: $val .= W...   26.01.2011, 20:06:03
- - holee   @nospor, powoli coś mi się udaje, wielkie dzięki. ...   26.01.2011, 20:56:33
- - nospor   Jakie 3? To ze nadales dla obiektu cache nazwę tak...   26.01.2011, 21:10:34
- - holee   Wszystko działa jak należy. pomogłeś mi wiele zroz...   27.01.2011, 22:58:47
- - nospor   A, to przez to hashowanie Cała nazwa obiektu ...   28.01.2011, 07:48:29
- - @rtur   Bardzo fajna i pożyteczna klasa, dziękuje. W plik...   10.05.2011, 00:28:55
- - nospor   Jeśli chcesz kasować cache raz dziennie to za life...   10.05.2011, 06:32:12
- - @rtur   A jak powinien wyglądać kod usuwający cache 'k...   10.05.2011, 07:31:31
- - nospor   W paczce masz podane kody do pobierania danych z c...   10.05.2011, 07:36:05
- - @rtur   Właśnie o ten poniedziałek mi chodzi   10.05.2011, 07:39:03
- - nospor   No to ten cron powinien załatwić sprawę   10.05.2011, 07:41:08
- - @rtur   ale ten kod który podałem wcześniej jest wystarcza...   10.05.2011, 07:51:44
- - nospor   No tak, jak nie zdefiniujesz grupy z której usuwas...   10.05.2011, 07:59:42
- - @rtur   dzięki za podpowiedzi, tak się jeszcze zastanawiam...   10.05.2011, 08:12:16
- - nospor   Nie. cache z opcją day kasuje się dokładnie następ...   10.05.2011, 08:14:16
- - @rtur   Więc chyba pozostaje mi czyszczenie cache imienino...   10.05.2011, 08:29:25
- - nospor   NIe zrozumiałeś totalnie.... Przecież ci tłumaczę,...   10.05.2011, 08:31:56
- - @rtur   Faktycznie, nie zrozumiałem. to jeszcze spytam o ...   10.05.2011, 10:16:58
- - nospor   Tak, gdy określisz czas w Get() to nadpisze on cza...   10.05.2011, 10:20:51
- - brayan.tr   Czy da się tak ustawić aby Cache ogóle nie było ka...   12.06.2011, 22:18:09
- - nospor   Ustaw za lifetime np. 5 lat. Podejrzewam, że przez...   13.06.2011, 07:18:19
- - adam882   Bardzo fajna klasa Mam jednak problem z grupą ...   28.12.2011, 09:27:50
- - nospor   yyyy, mysql_query() czy mysql_fetch_array()? Do ca...   28.12.2011, 09:30:01
- - adam882   chyba źle sprecyzowałem pytanie, ale dzięki za wła...   28.12.2011, 09:48:57
- - xxdrago   nospor, czy ta klasa nadawała by się do trzymania ...   29.12.2011, 10:41:48
- - nospor   W cache trzyma się dane, które przez dany okres cz...   29.12.2011, 10:48:28
- - adam882   Mam problem z klasą. Mianowicie zrobiłem sobie sy...   30.12.2011, 08:53:14
- - nospor   Jeśli jako ścieżkę do katalogu podajesz tak: Cache...   30.12.2011, 09:00:34
- - adam882   W jaki sposób można to zrobić? Modyfikując kod: [...   30.12.2011, 09:06:03
- - nospor   Albo podajesz złą ścieżkę Albo skrypt nie ma prawa...   30.12.2011, 09:10:03
- - adam882   Wydaje mi się, że problem leży tylko i wyłącznie w...   30.12.2011, 09:22:40
- - nospor   Przecież ci napisałem: masz podać ścieżkę bezwzglę...   30.12.2011, 09:26:10
- - adam882   ok, ale w którym miejscu się to ustawia ? (bo gdzi...   30.12.2011, 09:34:49
- - nospor   No tu to się ustawia: $cache->AddDriver(...   30.12.2011, 09:43:17
- - adam882   Robiłem tak i coś takiego mi pokazało: Fatal erro...   30.12.2011, 09:49:16
- - nospor   CytatCzy może chodzi tutaj o podanie ścieżki na se...   30.12.2011, 09:53:12
- - adam882   Wybacz, ciągle się uczę. Dzięki   30.12.2011, 09:54:40
- - verio   Czy można liczyć na jakieś wskazówki jak podłączyć...   5.01.2012, 23:44:43
- - nospor   1) Nie wiem jak wygląda OPT 2) Cache za bardzo z O...   6.01.2012, 13:03:01
- - pitbull82   Tworzę sobie swoją, znacznie prostszą klasę do cac...   11.01.2012, 19:28:20
- - nospor   Ano powinno Naszczeście serialize rzadko kiedy si...   11.01.2012, 19:40:46
- - pitbull82   To jeszcze na wszelki wypadek linia 224 [PHP] pob...   11.01.2012, 19:44:41
- - nospor   Hehe, nie, tym razem wszystko jest ok. Spójrz par...   11.01.2012, 19:46:42
- - pitbull82   Bez bicia przyznaję się, że nie bawiłem się jeszcz...   11.01.2012, 19:48:46
- - nospor   Hehe, ale słowo "Recursive" mogło dać ci...   11.01.2012, 19:50:43
- - Lukaszpl   Świetna sprawa z tą klasą do cache. Wdrożenie nie ...   23.02.2012, 09:32:44
- - nospor   Mówisz o sterowniku APC? ad1) Będzie tak samo jak...   23.02.2012, 09:41:48
- - Lukaszpl   Jaki jest maksymalny czas dla cache w pamięci i dy...   23.02.2012, 14:36:30
- - nospor   A możesz ustawić nawet i dwa lata jak masz taką oc...   23.02.2012, 14:40:50
- - jarod21   Witam, Jestem początkujący i mam pytanie: Pobieram...   11.11.2013, 13:34:26
- - nospor   Katalogi tworzą sie automatycznie. Widac skrypt ni...   12.11.2013, 07:02:44
- - jarod21   Wiem przeglądałem kod i dziwi mnie że przy CacheFi...   12.11.2013, 10:40:31
- - nospor   Poniewaz CacheFIleDriver nie tworzy zagniezdzonych...   12.11.2013, 10:57:20
- - jarod21   Witam, Zrobiłem test cache i wygląda, że jest 2x w...   6.01.2015, 22:41:23
- - nospor   Byłoby naprawde miło jakbyś uraczył nas kodem... s...   7.01.2015, 08:02:27
- - jarod21   Kod poniżej [PHP] pobierz, plaintext  requi...   7.01.2015, 11:30:37
- - Pyton_000   Może być szybsze przez to że MySQL robi cache zapy...   7.01.2015, 11:55:23
- - nospor   1) Do cache powinno się wkładać raczej jakies wiek...   7.01.2015, 11:56:12


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: 29.03.2024 - 07:22