|
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
ulle User
Anmeldungsdatum: 13.02.2004 Beiträge: 31
|
27.05.2004 9:11 Cache_Lite 1.3 / HowTo |
|
|
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
| 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.
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 |
|
 |
ulle User
Anmeldungsdatum: 13.02.2004 Beiträge: 31
|
15.06.2004 9:23 |
|
|
Nun da kein Einspruch gekommen ist gehe ich mal davon aus das ich so verfahren kann.
Oder benutzt niemand ge"cache"te CODE-Schnippsel  _________________ </ulle>
Rennrad Shop Custom Bike Rennrad |
|
| Nach oben |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
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
|
|