dedlfix: Trigger wenn Zugriff auf Variable?

Beitrag lesen

Hi!

Ich möchte immer dann wenn jemand etwas zur Variable $x hinzufügt eine Funktion aufrufen um die Veränderung in der Variable weiterverarbeiten zu können.

Eine einfache Variable lässt sich so nicht überwachen. Die vermutlich einfachste Lösung wäre, sich eine Zugriffsfunktion zu erstellen. Man kann das objektorientiert und mit den von Rouven genannten Pattern machen, aber es geht auch ohne.

function x($value = null) {  
  [link:http://de.php.net/manual/en/language.variables.scope.php#language.variables.scope.static@title=static] $x = null;  
  
  if ($value !== null) {  
    $x = $value;  
    // Überwachungslogik hier einfügen.  
  }  
  
  return $x;  
}

Lesen: $foo = x();
Schreiben: x('foo');

Das Problem ist das ich keine Möglichkeit habe die Variable $x innerhalb der versch. Scripte anzupassen, ich könnte diese maximal einmal am Anfang des Scriptes als "besondere" Variable definieren um diese zu überwachen.

Wenn es unbedingt eine Variable sein soll, kann ich mir noch vorstellen, dass sich der Session-Mechanismus dafür missbrauchen lässt, wenn man einen eigenen Session-Handler erstellt. Allerdings wird bei dem die für "write" zuständige Funktion nur am Scriptende und nach dem Abschluss der Ausgabe aufgerufen. Du kannst dann nur noch beispielsweise in einem DBMS die Änderung dokumentieren, das aber auch nicht jür jede einzelne.

Lo!