Mam do zaprezentowania własną klasę do cachowania. Umożliwia ona obok podstawowej funkcji odczytywania danych z danym czasem ważności podział danych na grupy, usuwanie wybranych danych z cache, grupy, bądź całego cache, wybór sterowników (aktualnie utworzona jest jedna strategia - do zapisu do plików, jednak spełniając interfejs CacheDriver możemy napisać własny - np. do zapisu do pamięci czy bazy), prosty debugMode - włączenie spowoduje wyrzucanie wyjątków.

Klasa jest opublikowana na licencji GPL.

  1. <?php
  2. require_once 'cache.class.php';
  3. require_once 'fileCacheDriver.class.php';
  4.  
  5. function getPrinters(){
  6. return array('HP 845C', 'Canon E23', 'Lexmark L45');
  7. }
  8.  
  9. try {
  10. $cache=new Cache();
  11. $cache->addDriver('file', new FileCacheDriver());
  12.  
  13.  
  14. $printers=$cache->get('products', 'printers', 500); # zwraca dane z cache z grupy products o id printers
  15.  
  16. if($printers===false) { #nie ma danych w cache
  17. $printers=getPrinters();
  18. $cache->set('products', 'printers', $printers); #ustawia dane do cache
  19. }
  20.  
  21.  
  22. var_dump($printers);
  23. }
  24. catch (CacheException $e){
  25. echo 'Error: '.$e->getMessage();
  26. }
  27. ?>


Cały kod
Pobierz
Strona projektu - zmiany etc.

Prosze o oceny i uwagi