|
ulf-wendel.de   
|
|
 Home < PHP Schulung  < Cache-Technologien  < Aktualität  < Abstrakte Funktion    |       |  
Print Version    
---
|
|
 Home 
 PHP Projekte 
 PHP Schulung 
    Informationsquellen 
    Geschichte 
    Core PHP 
    Fortgeschrittenes PHP 
    Templates 
    Cache-Technologien 
       Was cachen? 
       Wo cachen? 
       Probleme 
       Ersetzungsstrategien 
       Aktualität 
          on-demand Test 
          Abstrakte Funktion 
          Trigger 
       Speichermedien 
       Assembly 
       Lebensretter 
    OOH Forms 
 Technik der Site 
 Büchertipps 
 Fotografie 
 Airbrush 
 Kontakt 
 Stuff 

Cache als Abstrakte Funktion

Jeder Eintrag im Cache kann über eine beliebige Anzahl individueller Regeln zur Überprüfung seiner Aktualität verfügen. Diese Eigenschaft verbietet eine API wie im vorherigen Beispiel bei dem mit der Methode $cache->modtime() ausschließlich der Wert genau eines Unix-Timestamps überprüft werden kann.

Da nicht für jede denkbare Regel eine API-Funktion bereitgestellt werden kann, wird eine Funktion mit variabler Zahl von Argumenten verwendet, die eine Checksumme zurückliefert. Die Funktion garantiert, daß sie für jede Kombinationen von Argumenten eine andere Checksumme liefert. Der einfachen Implementation halber, wird eine Hashfunktion verwendet, die Kollisionen nicht ausschließt aber unwahrscheinlich werden läßt.


Checksumme für Aktualitätstests Top

<?php
  
function cache_checksum() {
    return 
md5(serialize(func_get_args()));  
  } 
// end func cache_checksum
?>      
      

Mit dieser Funktion wird die API bereits vereinfacht. Noch kompakter wird es, wenn wie beim PEAR-Datencache auch der Klartext-Handle für den Cache-Eintrag mit einbezogen wird und der Rückgabewert als Eintrags-ID verwendet wird.


ID-Generierung ähnlich dem PEAR-Cache Top

<?php
  
function cache_generateID() {
    return 
md5(serialze(func_get_args()));
  } 
// end func cache_generateID
  
  
$id cache_generateID('func_1'3'Ulf'filemtime('func1.php'));
  if (
$daten cache_get($id)) {
    
// Cache-Hit
    
    
print $daten;
    
  } else {
    
// Cache-Miss
    
    
include_once('func1.php');
    
$daten func1(3'Ulf');
    print 
$daten;
    
    
cache_save($id$daten);
  
  }
?>      
      

Mit dem letzten Listing wird der Vergleich mit einer abstrakten Funktion verständlich. Die von uns verwendete abstrakte Funktion hat die Form: cache(arg1 [, arg2...]).

<  ^  >

 Neues

 XML/XSLT Menu
 OOH-Form Rewrite

 PEAR Cache:
  SHM Container

 Suchstring Parser
 Buchrezensionen
 PEAR Cache:
  OutputCompression

 PEAR Menu Browser
 PEAR Menu Tutorial 
 PEAR Cache


 Tipp

Download Version:
oben rechts,
Download *.tar.gz
|
| --- |
|
  Top   |   <  ^  >   |   phpOpenTracker Statistik   |   URL: http://www.ulf-wendel.de/schulung/cache/aktualitaet/abstrakte_funktion.php   |   Stand: 05.02.2002   |   © Ulf Wendel   
|
| --- |

0.017 s Bearbeitungszeit, 0.002 s IT[X], 0.004 s Menu 3