Chrisi: Trigger wenn Zugriff auf Variable?

Hallo zusammen,

ich überlege gerade wie ich es schaffe eine Aktion bei einem Zugriff auf eine bestimmte Variable zu starten.

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.

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.

Vermutlich denke ich zu kompliziert, aber vllt. hat jemand einen Tipp für mich?

Danke für eure Hilfe und Viele Grüße
Chrisi

  1. Hello,

    Vermutlich denke ich zu kompliziert, aber vllt. hat jemand einen Tipp für mich?

    für eine normale Variable nicht unbedingt, objektorientiert könnte man in Richtung Observer Pattern denken, vielleicht auch Richtung Decorator.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
  2. 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!