ebiz-webhosting
- Ad -
IMPRESSUM dotted_line KONTAKT dotted_line search dotted_line Contact dotted_line sitemap
369 PHP-Resource Mitglieder online


php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Blogs > gourmet
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

Bewerten

Kleine File-Cache Klasse

"Kleine File-Cache Klasse" bei Mister Wong speichern "Kleine File-Cache Klasse" bei YiGG.de speichern "Kleine File-Cache Klasse" bei Google speichern "Kleine File-Cache Klasse" bei del.icio.us speichern "Kleine File-Cache Klasse" bei Digg speichern "Kleine File-Cache Klasse" bei icio.de speichern "Kleine File-Cache Klasse" bei My Yahoo speichern
Veröffentlicht: 12-11-2010 um 21:45 von gourmet
Aktualisiert: 19-11-2010 um 20:34 von gourmet
Stichworte cache, caching, class, file, template

Hallo liebe Leser,

dies soll nun mein erster Blogeintrag werden und in dem werde ich eine kleine Cache-Klasse vorstellen.
Wer den Weg hierher findet, darf gerne konstruktive Kommentare hinterlassen.

Nun zur Klasse:

Ich habe der Einfachheit halber einen Konstruktor weggelassen und den Eigenschaften statisch Werte zugewiesen. Ich selbst verwende diese Klasse so auch nicht, aber so ähnlich .

Ich hoffe die Kommentare genügen. Ich gehe davon aus, dass die Eigenschaften und Methoden selbsterklärend sind .

Cache.class.php
PHP-Code:
class Cache {

/**
* @String
* Cache-Ordner
*/
private $cacheDir 'cache/';
/**
* @Boolean
* Cache ein/aus (true/false)
*/
private $caching false;
/**
* @Int
* Cache Lebensdauer in Sekunden
*/
private $cacheLifetime 60;
/**
* @String
* Cache-Filename generiert aus MD5 verschlüsselter ID + Template-Filename + .class 
*/
private $cacheFile null;

    
/**
    * Cache-Filename kreieren
    */
    
public function setCacheFileName($id$tplFileName) {
    
$this->cacheFile md5($id.$tplFileName).'.cache';
    }
    
    
/**
    * Pfad zu den Cachefiles setzen
    */
    
public function setCacheDir($path) {
    
$this->cacheDir $path;
    }
    
    
/**
    * caching ein-/ausschalten
    */
    
public function setCaching($what) {
    
$this->caching $what;
    }
    
    
/**
    * Cache Lebensdauer setzen
    */
    
public function setCacheLifetime($ltime) {
    
$this->cacheLifetime intval($ltime);
    }
    
    
/**
    * überprüfen ob ein Cachefile existiert. wenn ja, dann überprüfen ob es aktuell ist
    */
    
public function isCache() {
        if(
file_exists($this->cacheDir.$this->cacheFile) ) {
            if((
time() - filemtime($this->cacheDir.$this->cacheFile)) >= $this->cacheLifetime) {
            
$this->deleteCacheFile();
            
clearstatcache();
            return 
false;
            }
        
clearstatcache();
        return 
true;
        }
    return 
false;
    }
    
    
/**
    * Cachefile löschen
    */
    
public function deleteCacheFile() {
        if(
unlink($this->cacheDir.$this->cacheFile)) {
        return 
true;
        }
    return 
false;
    }
    
    
/**
    * Cachefile erstellen
    */
    
public function writeCache($tpldata) {
        if(
$this->caching === true && $this->isCache() === false) {
        
$serializedData serialize($tpldata);
            if(!
file_put_contents($this->cacheDir.$this->cacheFile$serializedDataLOCK_EX)) {
            return 
false;
            }
        }
    }
    
    
/**
    * Cachefile lesen
    */
    
public function readCache() {
    
$data file_get_contents($this->cacheDir.$this->cacheFile);
    
$mdata unserialize($data);
    return 
$mdata;
    }
    

Cache.class anwenden

example.php
PHP-Code:
//Klasse inkludieren
require_once 'Cache.class.php';
//neues Objekt Cache
$cache = new Cache;
//Cache Filename setzen
$cache->setCacheFileName(1'template.tpl');
//Caching aktivieren
$cache->setCaching(true);
//Cache schreiben
$cache->writeCache($tplData);
//Cache ausgeben
echo $cache->readCache(); 
Das war's.

VG
gourmet

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Kategorie: PHP
Hits 2616 Kommentare 0 Stichworte bearbeiten Hinweis auf diesen Blog-Eintrag per E-Mail verschicken
« Zurück     Startseite des Blogs     Nächste »
Kommentare 0

Kommentare

 
Trackbacks 0

Trackbacks


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:22 Uhr.



Search Engine Friendly URLs by vBSEO 3.3.0