Alexander Brock: HTTP-Cache

Beitrag lesen

Hallo Freunde des gehobenen Forumsgenusses,

Wenn get() die einzige öffentliche Methode ist, wäre es für den Anwender einfacher, diese statisch aufrufen zu können, statt sich eine Instanz, die man nicht weiter braucht, in seinen Variablenraum zu holen.

Du meinst so? HTTPCache::get($url);

Die Klasse HTTPCacheDB ist im Prinzip allein nicht lebensfähig.

Ja, das ist Absicht. Sie macht auch allein wenig Sinn.

Ich habe den Eindruck, dass du HTTPCacheDB nur zum Auslagern von Code verwendest, damit die Hauptklasse nicht zu groß wird. Das ist ... ähm ... unüblich.

Nein, ich wollte eigentlich Die Verarbeitung von HTTP-Anfragen von der Datenbank trennen, damit man z.B. die Datenbank durch ein DBMS ersetzen kann.,

Du setzt mit der Verwendung von file_put_contents() PHP5 voraus, wendest aber dessen neue Visibility-Möglichkeiten bei der Verwendung von Klassen nicht an (public, private, protected für Methoden und statt var).

Ich habe extra für die PHP 4 eine Datei, in der die notwendigen Funktionen nachgerüstet werden, weil das ganze auch unter PHP 4 laufen können soll.

  
if (!function_exists('file_put_contents')) {  
 #[....]  
}  

Du verwendest trigger_error() in HTTPCacheDB. Soweit nicht schlecht. Das hat nur den Nachteil, dass man die Ausgabe von Meldungen irgendwie ausschalten muss, wenn man deine Klassen einsetzt. Ein besseres Konzept wären Exceptions.

Die es in PHP 4 nicht gibt. Das mit dem trigger_error ist auch mehr zu Debugging-Zwecken, ich kommentiere das jetzt mal aus. Außerdem sollten in Produktiv-Systemen die Fehler geloggt und nicht ausgegeben werden.

Die Methode open() in HTTPCacheDB liefert zwar einen Erfolgsstatus, doch der wird in HTTPCache ignoriert. Bei add|read|update|writeResource() ist das auch so.

Das ist wahr, das änder ich noch.

Gruß
Alexander Brock