Cache, [klasa] php5 |
Cache, [klasa] php5 |
10.10.2006, 15:38:02
Post
#21
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) |
super klasa, tylko przydałaby się jeszcze jedna funkcjonalność. Chodzi o ustawianie katalogów, w jaki mają być wgrywane pliki cache. W tej chwili mozna ustawić jeden katalog w konstruktorze klasy, a według mnie przydałoby się, aby można było ustawiać katalogi np. dla grup, czy nawet pojedynczych plików cache.
Dzięki temu raz, że można by sobie ładnie posegregować pliki, a dwa aplikacja taka byłaby wydajniejsza, gdy będziemy mieli tysiące plików cache. |
|
|
11.10.2006, 09:38:20
Post
#22
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat W tej chwili mozna ustawić jeden katalog w konstruktorze klasy Nie w konstruktorze klasy, a w konstruktorze sterownika (w sumie tez klasy) operujacego na plikach. No chyba ze mowiles o poprzednich wersjach. Co do Twojego pomyslu: fakt, iz jest to w jednym katalogu, to raczej nie wplywa na wydajnosc. A jesli by sie uprzec, by wszystko bylo w innych katalogach, to mozna teraz zdefiniowac kilka obiektow sterownika zapisujacego w plikach, dla kazdego sterownika przypisac inny katalog, a kazdy taki sterownik przypisac do innej grupy. Dzieki temu kazda grupa bedzie miala swoj katalog. Ale to juz bedzie kombinowanie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
16.10.2006, 14:41:11
Post
#23
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) |
Wiesz czego mi tu tylko brakuje ? Inerfejsu dla sterowników. Poza tym miodzio.
-------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
16.10.2006, 14:47:12
Post
#24
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat Inerfejsu dla sterowników Hmmm, rozwin swoją mysl, bo niwząb nie kumam o czym do mnie mowisz Przeciez jest interfejs.edit: no i na PW sprawa sie wyjasnila. bigZbig byl po paru glębszych ( ) i niedolukal tego -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.05.2007, 16:18:19
Post
#25
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 28.04.2006 Ostrzeżenie: (0%) |
Mam taką sytuację, mam na stronie możliwość komentowania.
Cechuje pobieranie z bazy daty, autora, treść komentarza. A czy jest możliwość aby zrobić żeby pobierało nowe komentarze ale dopiero wtedy kiedy coś dodał nowy?? A nie po upływie pewnego czasu. |
|
|
12.05.2007, 19:43:10
Post
#26
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat A czy jest możliwość aby zrobić żeby pobierało nowe komentarze ale dopiero wtedy kiedy coś dodał nowy?? A nie po upływie pewnego czasu. Oczywiscie. Jak ktos doda komentarz, wowczas czyscisz cache. Czyscisz albo caly cache, albo tylko grupe do ktorej naleza komenty, albo tylko dany cache, ktory trzyma komenty. Do wyboru do koloru Metody za to odpowiedzialne to bodajze metody z rodziny Clear... Nie pamietam dokladnie nazw bo nie mam akurat klasy przed soba -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.05.2007, 21:12:07
Post
#27
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 28.04.2006 Ostrzeżenie: (0%) |
ok jakoś poszło ale jak chciałem to wykorzystać tutaj Plik
Plik mieści się na forum ale nie chciałem zaśmiecać, plik php tylko dodane rozszerzenie .txt To pokazuje mi
A jak skasuje
to wyskakuje
Gdzie indziej działa np w galerii już nie mam pomysłu robie przecież tak samo. |
|
|
13.05.2007, 18:30:40
Post
#28
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat Fatal error: Cannot redeclare class cacheexception in /home/test/ftp/cms/components/com_datsogallery/cache/Cache.class.php on line 661 Blad ten oznacza, ze ponownie deklarujesz klase, ktora juz byla deklarowana. Z racji, iż moj CacheException jest deklarowany w tym samym pliku co klasa Cache, a do klasy Cache sie nie czepia, podejrzewam, iż gdzies masz deklarowaną jeszcze inna klase o nazwie CacheException. Gdzie? To juz musisz sam znaleźć. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
13.05.2007, 19:51:00
Post
#29
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 28.04.2006 Ostrzeżenie: (0%) |
Problem był z ścieżkami;/
dzięki |
|
|
7.02.2009, 16:34:07
Post
#30
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Chciałbym tutaj napomnieć o cachowaniu danych w plikach.
Sam osobiście korzystam właściwie tylko z tej metody i ważne jest żeby nie przesadzić z ilością plików w katalogu (ponieważ wtedy cały pomysł Cache na plikach może nie spełniać swojego zadania) Załóżmy np limit 1000. Przy zapisywaniu pliku szukamy w jego nazwie liczby dzięki której będzie można pogrupować pliki w katalogi. Wyciągniętą liczbę dzielimy przez maksymalną liczbę plików w katalogu (1000) i stosujemy na niej floor. Kod $liczba=floor($liczba/1000); Oto przykład. Plik do zapisu object_1 zapisujemy w takiej ścieżce. object/0/object_1 Natomiast plik object_1035 zapisujemy już w object/1/object_1035 Mam nadzieję, że mój pomysł komuś się przyda. -------------------- |
|
|
11.02.2010, 22:05:35
Post
#31
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 18 Dołączył: 4.02.2003 Skąd: Częstochowa Ostrzeżenie: (0%) |
Chciałem przetestować klase @Nospor-a, czy ktoś kto jej używa mógłby mnie naprowadzić gdzie mam zmienić zapis ścieżek tak jak napisał @wookieb o post wyżej?
-------------------- |
|
|
13.02.2010, 19:23:15
Post
#32
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 12.02.2010 Ostrzeżenie: (0%) |
Sam miałem dużo problemów z Cache, ten skrypt je rozwiązał. Dzięki nospor.
|
|
|
15.02.2010, 20:46:11
Post
#33
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
@rafalp wersja co ci wysłałem na maila zawiera miedzy innymi:
Sterownik bazujący na plikach pozwala zapisywac obiekty i grupy w postaci: sciezka/do/obiektu Tworzone zostają wówczas katalogi sciezka/do a w nich powstaje obiekt cache "obiektu". Mozesz w ten sposob zarządzac struktura katalogów cache. Mozesze czyscic wybrany katalog, czyscic raz na jakis czas oraz inne -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.01.2011, 19:53:14
Post
#34
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Chełm Ostrzeżenie: (0%) |
Witam;
Właśnie próbuje ogarnąć tą klasę i prawdę mówiąc ciężko mi to idzie. Potrzebuję jakiegoś przykładu abym mógł się wzorować. Niech przykładem będzie Kod $query = " SELECT dane FROM tabela LIMIT 0, 5"; $result = mysql_query($query); echo '<div class="reg">'; while ($row = mysql_fetch_array($result)) { echo '<div class="reg_kont">'; echo '<p>'.$row['tresc'].'</p>'; echo '<span>przez '.$row[imie].'</span>'; echo '</div>'; } echo '</div>'; Jak widać prosty kod. Teraz próbuję zastosować omawianą klasę: Kod $val = $cache->Get("SELECT dane FROM tabela LIMIT 0, 5", "@queries"); if (is_null($val)){ $val = 'tutaj wyniki zapytania'; $cache->Put("SELECT dane FROM tabela LIMIT 0, 5", $val, "@queries"); echo 'Wlozono obiekt do cache: select * from tabela <br />'; } else { echo 'Pobrano obiekt z cache: select * from tabela : '.$val.' <br />'; } i nie wiem co dalej Jak powinien ostatecznie wyglądać kod z zastosowaniem cachu ? Proszę o pomoc, bo ja kombinuję już różnie od 2 godzin i żadnych efektów. Na dobrym przykładzie myślę, że będę w stanie dalej działać sam. Pozdrawiam -------------------- I pamiętaj lepsze jutro było wczoraj a więc porzuć wszelką nadzieję.
Tanie Winka - www.wina.tk |
|
|
26.01.2011, 19:56:45
Post
#35
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
W miejscu
$val = 'tutaj wyniki zapytania'; masz napisać zapytanie do pobierania danych z bazy, wykonać je (mysql_query()) a następnie wynik (tablica rekordow, obrobiony tekst czy co ty tam sobie zyczysz) zapisać w zmiennej $val -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.01.2011, 20:04:00
Post
#36
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Chełm Ostrzeżenie: (0%) |
Coś takiego ?
Kod $val = $cache->Get("SELECT dane FROM tabela LIMIT 0, 5", "@queries"); if (is_null($val)){ $query = "SELECT dane FROM tabela LIMIT 0, 5"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { $val = '<div class="reg_kont"><p>'.$row['tresc'].'</p><span>przez '.$row[imie].'</span></div>'; } $cache->Put("SELECT dane FROM tabela LIMIT 0, 5", $val, "@queries"); echo 'Wlozono obiekt do cache: select * from tabela <br />'; } else { echo 'Pobrano obiekt z cache: select * from tabela : '.$val.' <br />'; } Jak widać nie jestem biegły w kodowaniu, a wręcz odwrotnie. Coś mi ten mój kod się nie podoba ;/ Proszę o wyrozumiałość. -------------------- I pamiętaj lepsze jutro było wczoraj a więc porzuć wszelką nadzieję.
Tanie Winka - www.wina.tk |
|
|
26.01.2011, 20:06:03
Post
#37
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Prawie dobrze.
Nie: $val = a: $val .= Widze, że robisz jako nazwe cache tresc zapytania. Zakladam więc, że włączyłeś hashowanie dla grupy @queries? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.01.2011, 20:56:33
Post
#38
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Chełm Ostrzeżenie: (0%) |
@nospor, powoli coś mi się udaje, wielkie dzięki. Tak, hashowanie mam włączone. Tylko jedno mnie dziwi. Po zaimplementowaniu cachu, z jednego zapytania - zrobiły się3
Jedno jest w : Kod $val = $cache->Get... Drugie w: Kod $val = ... I trzecie w: Kod $cache->Put... Dużo tego Tak powinno być ? I jeszcze raz dzięki za pomoc. -------------------- I pamiętaj lepsze jutro było wczoraj a więc porzuć wszelką nadzieję.
Tanie Winka - www.wina.tk |
|
|
26.01.2011, 21:10:34
Post
#39
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Jakie 3? To ze nadales dla obiektu cache nazwę taką samą jak tresc zapytania to już nie moja wina. Mogles sobie obiekt cache nazwa "ala ma kota" i juz bys mial tylko jedno zapytanie
ALbo tresc zapytania wlozyc do zmiennej $zm = 'SELECT dane FROM tabela LIMIT 0, 5'; I potem posługiwać się tylko zmienną. Przecież to tylko przykład. Liczyłem, że osoby które to będą czytały wykażą się odrobiną no nie wiem, myslenia? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
27.01.2011, 22:58:47
Post
#40
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Chełm Ostrzeżenie: (0%) |
Wszystko działa jak należy. pomogłeś mi wiele zrozumieć, ale mam jeszcze jedno pytanko odnośnie organizacji plików cachu.
Chciałbym aby pliki danej grupy zapisywały się w oddzielnych folderach i widzę, że Twoja klasa to umożliwia - jednak nie do końca mi to działa ;/ Otóż owszem tworzy nowy folder, ale umieszcza w nim tylko plik @test Kod require('Cache.class.php'); require('drivers/CacheFileDriver.class.php'); $cache = new Cache(); $cache->AddDriver('fileDriver',new CacheFileDriver('Cache')); $val = $cache->Get('folder/nazwa', 'folder/@test'); if (is_null($val)){ $val = 'tutaj wyniki zapytania'; $cache->Put('folder/nazwa', $val, 'folder/@test'); } else { echo $val; } O czymś zapomniałem ? Pozdrawiam -------------------- I pamiętaj lepsze jutro było wczoraj a więc porzuć wszelką nadzieję.
Tanie Winka - www.wina.tk |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 20:24 |