Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] cache
Forum PHP.pl > Forum > PHP
PiratNowegoPokolenia
Temat poruszany już chyba z tysiąc razy ale muszę się dowiedzieć czy dobrze rozumiem to pojęcie blinksmiley.gif

Chciałem zrobić klasę która będzie:
na początek będzie pobierała z jednego pliku nazwy plików cache ...
W momencie pobierania jakiegoś pliku cache szukała nazwy pliku w tablicy którą pobrała z tego pierwszego pliku. Zapisywanie cache to żaden problem ... pomijając to jak nazwać pliki ... jeżeli będą zabezpieczone tagami <?php to wtedy nie trzeba kombinować i można dać prostą nazwę typu news_page_1.php

Oprócz tego mam jeszcze dwa problemu spowodowane małym doświadczeniem
W jaki sposób miał bym zapisać cache ...
Czytałem coś że opłaca się te dane zserializować i moje pytanie:
Kod
a:5:{s:1:"a";s:5:"value";s:1:"v";s:3:"lol";i:3;s:8:"no i git";i:99;s:3:" /n";s:3:"lol";i:0;}

co z tym zrobić ... wrzucić bezpośrednio do pliku czy coś w rodzaju
  1. <?php
  2. $a = 'a:5:{s:1:"a";s:5:"value";s:1:"v";s:3:"lol";i:3;s:8:"no i git";i:99;s:3:" /n";s:3:"lol";i:0;}';
  3. ?>


a i jeszcze jedno: Nie mam zamiaru tworzyć osobnego systemu cache dla SQL i templatek. Wydaje mi się to po prostu nie potrzebne.
Czy to co powiedziałem ma sens czy jednak jest inaczej ?

Proszę każde zdanie skomentować i obalić moje dziwne teorie tongue.gif
Maksymus007
możesz nie bawić się w pliki .php tylko zapisywać w samych plikach np. txt w katalogu który ochronisz .htaccess przed dostępem z zewnątrz.

Dalej - serializacja - dokladnie tak - serialize($tablica) i masz stringa, którego wrzucasz. Klasa wydaje się byc prostym pomysłem - jedna tablica która zawiera nazwy plików - zserializowana do jakiegos pliku, potem z tej tablicy zarządzanie reszta - jeśli tylko by to ładnie połaczyć z tworzeniem/edycją plików.
PiratNowegoPokolenia
na bezpłatnych hostingach htaccess działa ?
Maksymus007
a to już nie tutaj się pytaj... ale powinien działać...
PiratNowegoPokolenia
  1. <?php
  2. $a = new cache();
  3. $array = array( '0' => 1 , array('echo' , 0 => 3 ) );
  4. $klucz = 'w';
  5. $load = $a-> load_cache( $klucz );
  6. print_r( $load );
  7.  
  8. class cache
  9. {
  10. public $cachedir = 'cache';
  11.  
  12. public function load_cache( $key )
  13. {
  14. if( file_exists( $this->cachedir . '/' . $key . '.cache' ) )
  15. {
  16. $temp = file_get_contents( $this->cachedir . '/' . $key . '.cache' );
  17. return unserialize( $temp );
  18. }
  19. else
  20. {
  21. return false;
  22. }
  23. }
  24.  
  25. public function save_cache( $array , $key )
  26. {
  27. $serial = serialize( $array );
  28.  
  29. if( file_put_contents( $this->cachedir . '/' . $key . '.cache' , $serial ) )
  30. {
  31. return true;
  32. }
  33. else
  34. {
  35. return false;
  36. }
  37. }
  38.  
  39. public function delete_cache( $key )
  40. {
  41. if( unlink( $this->cachedir . '/' . $key . '.cache' ) )
  42. {
  43. return true;
  44. }
  45. else
  46. {
  47. return false;
  48. }
  49. }
  50. }
  51. ?>

czyli mniej więcej tak to ma wyglądać ?
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-2025 Invision Power Services, Inc.