<?php # autor: fifi209 (Fast) # class: CacheSystem # version: 1.02 class CacheSystem { const COMPRESSION_NONE=0; const COMPRESSION_BZIP2=1; protected $dir; private $compression; public function __construct($dir, $compression) { $this->dir = $dir; switch ($compression) { case self::COMPRESSION_NONE: $this->compression = false; break; case self::COMPRESSION_BZIP2: $this->compression = true; break; } }else{ } } public function __get($cacheFile) { if ($this->compression == false) { }else{ $handle = bzopen($this->dir.'/'.$cacheFile.'.cache', 'r'); bzclose($handle); return $text; } }else{ return false; } } public function __set($cacheFile, $value) { if ($this->compression == false) { file_put_contents($this->dir.'/'.$cacheFile.'.cache', $value); return true; }else{ $handle = bzopen($this->dir.'/'.$cacheFile.'.cache', 'w'); bzwrite($handle, $value); bzclose($handle); return true; } } public function destroy($cacheFile) { if ($this->$cacheFile != false) { return true; }else{ return false; } } } ?>
Napisałem ją dla siebie, ale może się komuś przyda. A teraz prosiłbym o jakieś uwagi dot. kodu, tj. co by można zmienić, zrobić inaczej.
Wydaje mi się, że jak na tą prostotę funkcjonalność jest wystarczająca. (przynajmniej dla mnie)
Użycie przykładowe:
Najpierw konstruktor:
<?php $cache = new CacheSystem('cache', CacheSystem::COMPRESSION_NONE); ?>
Parametr pierwszy - ścieżka do folderu cache
Parametr drugi - używana kompresja (w tym wypadku brak, lecz "NONE" można zastąpić "BZIP2")
a) Dodawanie cache/Zmienianie jego wartości (konstruktor pomijam)
<?php $cache->podstrona = 'Jakas wartosc'; ?>

<?php ?>
c) Usuwanie cache
<?php $cache->destroy('podstrona'); ?>
podstrona -> nazwa pliku cache
