Ist ja schön und gut, aber ich kann mir nicht vorstellen, dass du mehr als eine einzige Cache-Datei damit be- oder verarbeiten kannst, denn
PHP:
private function __construct($cache_filename, $cache_lifetime = 0)
{
$this->CacheDir = "templates_cached".DIRECTORY_SEPARATOR;
$this->Lifetime = $cache_lifetime;
$this->CacheFile = $this->CacheDir.$cache_filename;
}
public static function getInstance($cache_filename = "", $cache_lifetime = 0)
{
if(self::$instance === NULL)
{
self::$instance = new Caching($cache_filename, $cache_lifetime);
return self::$instance;
}
else
{
return self::$instance;
}
}
erstellt die Instanz einmalig, und
Caching::$CacheFile wird nur ein Mal belegt im Constructor, ansonsten bleibt es immer so, da die Instanz nicht immer wieder neu erzeugt wird sondern nur eine Referenz darauf übergeben wird, weil Caching::$instance nach dem Erzeugen nie wieder
null annimmt.
Was ist nun, wenn du mehrere Sachen in einem Task cachen möchtest? Funktioniert nach meinem Verständnis des Singleton-Pattern somit nicht mehr.
Ansonsten hast du weder eine Methode implementiert, um den Pfad zu ändern noch eine Möglichkeit, die Lebensdauer zu benennen.
Vor dem file_put_contents solltest du des Weiteren überlegen, die Daten zu serialisieren - Nur für den Fall der Fälle, dass du ein Array oder ein Objekt cachen möchtest, was dann Sinn macht, wenn du nicht nur Templates sondern auch aus der Datenbank gefetchte Datenmengen cachen möchtest - Das ist vor allem dann lohnend, wenn du mehrere Templates zur gleichen Zeit nutzt oder auch einfach lieber die Daten speicherst als die gerenderte Ausgabe.