MM: Singleton: Objekt seitenübergreifend ablegen

Beitrag lesen

Hallo Forum,

meine mehrsprachige Seite ließt die lokalisierten Texte aus einer Datenbank. Nun muss ich das ganze noch performance-optimieren. Da sich die Texte i.d.R. nicht ändern (und wenn doch, bekomme ich das mit), möchte ich gerne einen Cache implementieren.
Mein Ansatz (muss PHP 4 verwenden):

class TranslationCache {

var $cache = array();

function &getInstance() {
  static $instance;
  if (!isset($instance)) {
   $instance = new TranslationCache();
  }
  return $instance;
 }

function add($inDomain, $inForeignId, $inField, $inLanguage, $inText) {
  $this->cache[$inDomain][$inForeignId][$inField][$inLanguage] = $inText;
 }

function get($inDomain, $inForeignId, $inField, $inLanguage) {
  return $this->cache[$inDomain][$inForeignId][$inField][$inLanguage];
 }

function reset($inDomain, $inForeignId, $inField, $inLanguage) {
  unset($this->cache[$inDomain][$inForeignId][$inField][$inLanguage]);
 }
}

Wenn ich das so teste, klappt es auch:
$cache =& TranslationCache::getInstance();
echo($cache->add("Menu", 7, "bla", "de", "deutsch"));
echo($cache->add("Menu", 7, "bla", "en", "englisch"));
echo($cache->get("Menu", 7, "bla", "de));

Allerdings soll der Cache ja auch noch da sein, wenn ich auf eine andere Seite gehen. Auf einer völlig anderen Seite muss ich also auch
echo($cache->get("Menu", 7, "bla", "de));
aufrufen können und einen Wert bekommen.

Jetzt die Frage:
Wie schaffe ich es, dass das Cache-Singleton seitenübergreifend existiert?

In die Session legen, wäre nur die halbe Miete, denn es sollen ja alle Besucher den selben Cache nutzen.

Wer hat einen Tipp?

Danke und Gruß
MM