Dennis: HTTP-Cache

Beitrag lesen

Hi dedlfix,

Ob es nötig ist, eine Basisklasse für Storage-Engines zu schreiben? ... Gemeinsame Funktionalität, die also nicht jede Storage-Engine-Implementation anders realisiert, wird es wohl nicht geben.

Das schreit doch förmlich nach einem Interface oder einer abstrakten Klasse.

Man kann aber immerhin noch, wenn nötig, testen (beispielsweise beim Initialisieren der Storage-Engine in HTTPCache), ob ein von der Basisklasse abgeleitetes Objekt zurückgegeben wurde (is_a()).

Zum Beispiel folgende abstrakte Klasse:

abstract class DBMS {  
  
  // Diese Funktionen muss jedes DBMS auf jeden Fall implementieren  
  abstract public function get($ressource);  
  abstract public function save($ressource, $data);  
  
  // aber nicht jedes DBMS muss sich initialisieren und beenden  
  public function init() {  
    return true;  
  }  
  public function stop() {  
    return true;  
  }  
}

Mit get_parent_class() sollte sich dann noch prüfen lassen, ob KonkreteKlasse ein Kind von DBMS ist - Durch die Prüfung kann man dann auch noch sicherstellen, dass die obigen 4 Funktionen auf jeden Fall vorhanden sind.

MfG, Dennis.