PEAR-Forum.de Übersicht Thema anzeigen - Cache_Lite 1.3 / HowTo

Cache_Lite 1.3 / HowTo


 

PEAR-Forum.de Übersicht » Caching
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ulle
User


Anmeldungsdatum: 13.02.2004
Beiträge: 31

Beitrag27.05.2004 9:11    Cache_Lite 1.3 / HowTo Antworten mit Zitat

Moin,

Habe mir mal gedanken zum Cache_Lite gemacht.

Um im Script so wenig wie möglich Definitionen zu tätigen habe ich eine eigene Class gestrickt die PEAR::Cache_Lite als Basis nutzt. Vererbung Arrow

PHP:
<?php
/**
* Class Cache

* Dateiname        =>> class.pear.cache_lite.inc.php

* Basisklasse    =>>    PEAR::Cache_Lite    

* abgeleitete Klasse verfügt über alle Variablen und Funktionen der Basisklasse 
* siehe [http://pear.php.net/package/Cache_Lite/docs]    
*/

require_once('Cache/Lite.php');

class 
Cache extends Cache_Lite {
    
    
    function 
Cache() {
        
        
// Set a few options    
        
$this->_cacheDir "../../Cache/";
        
        
// When an error is found, the script will stop and the message will be displayed 
/*        $this->setToDebug();
*/        
        
    
}
    
    
    
// getData( string $str_Id, [string $str_Group = 'default'], [ind $ind_LifeTime = 3600] )    
    // 
    // string $str_Id        = Block-ID    
    // string $str_Group    = Block-Group (zum Löschen einer Gruppe) siehe Funktion [$this->clean($str_Group)]    
    // ind $ind_LifeTime    = max. [time to life] des Blocks im CACHE // [0] erneuert sofort    
    
function getData($str_Id$str_Group false$ind_LifeTime false) {
        
        
        if (
$ind_LifeTime !== false) { $this->setLifeTime($ind_LifeTime); }
        
        return 
$this->get($str_Id,$str_Group);
    }
    
    
    
// saveData( string $str_Data )    
    // 
    // string $str_Data        = Ausgabe-Daten (XHTML) die im Cache gespeichert werden        
    // 
    // zusätzlich werden die Daten in einen Timestamp gepackt    
    
function saveData($str_Data) {
        
        
$str_Label 'cache:'.$this->_id.':'.$this->_group.':'.date("ymd:Gis");
        
        
$str_Data '<!--'.$str_Label.'-->'$str_Data .'<!--/'.$this->_id.'-->';
        
        return 
$this->save($str_Data);
    }
    
    
    
    
}

?>


Aufruf im Script

PHP:
<?php
// Include the package / Create a Cache_Lite object    
require_once('../myclasses/class.pear.cache_lite.inc.php');
$obj_Cache = new Cache();


// Cache::getData( $str_Id, [$str_Group = 'default'], [$ind_LifeTime = 3600] )    
if (!($data $obj_Cache->getData('ebene_1','menu'2592000 ))) {
    
     
// Hier kommen dann alle Arbeitsschritte (DB-Abfrage usw.)
     // um die Daten zu erzeugen
    
$data 'Initial from [ <strong>'.$_SERVER['PHP_SELF'].'</strong> ]';
    
$data.= ' at ';
    
$data.= '[ <strong>'.date("d.m.Y G:i:s").'</strong> ]';
    
    
$obj_Cache->saveData($data);
    
}
echo 
$data;


Möglich ist die $ind_LifeTime auf >86400 Sekunden (>24h) zu setzen, somit muß nicht alles bei jedem Aufruf neu durch den Parser. Mit $ind_LifeTime "0" können bestimmte Code-Schnippsel, die im Cache sind, überschrieben werden - bietet sich dann bei Administrativen Scripts an.
D.h. man kann die Code-Schnippsel, die im Cache sind, von jedem Script nutzen und von jedem Script bestimmen ob es überschrieben/aktualisiert wird.


Somit habe ich den Cache-Pfad zentral (bei Änderung) geführt und die Nutzung des Caches (mit allen wichtigen Definitionen) auf eine Bedingung reduziert.


Exclamation Nun möchte ich dieses Vorgehen (mit der Vererbung) mal zur Diskussion stellen, da ich noch nicht überblicke ob dieses verfahren nicht auch einen "Pferdefuß" birgt.

_________________
</ulle>

Rennrad Shop Custom Bike Rennrad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ulle
User


Anmeldungsdatum: 13.02.2004
Beiträge: 31

Beitrag15.06.2004 9:23     Antworten mit Zitat

Shocked

Nun da kein Einspruch gekommen ist gehe ich mal davon aus das ich so verfahren kann.

Oder benutzt niemand ge"cache"te CODE-Schnippsel Question

_________________
</ulle>

Rennrad Shop Custom Bike Rennrad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » Caching
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen