Aufruf-Hierarchie auslesen

Ich möchte aus bestimmten Gründen die Hierarchie von Aufrufen feststellen

Bsp.:

Ereignis 1 → Instanz A → Instanz B

Hier möchte ich in Instanz B wissen, das es von Instanz A aufgerufen wurde und somit indirekt von Ereignis 1.

Die Instanzen sind im Idealfall beides meine eigenen Module, d.h. es würde helfen, wenn ich die ID des jeweils aufrufenden Objektes wüsste

In einem Script gibt es ja _IPS[‚SENDER‘], gibt es etwas vergleichbares auf Modul-Ebene?

Sorry, verstehe ich nicht.
Deine Reihenfolge oben und der Text passen nicht zusammen.
Und dann ist die Frage auch; wie wird was aufgerufen?
Von User angelegtes Ereignis von/zu Statusvariable?
Direkt aus der Instanz aus angesteuert andere Instanz? Oder über eine Aktion, auch manuell angelegt oder über eine Instanz gestartet?
Möglichkeiten sind je nach Variante vorhanden.
Du kannst selbst Scripte starten und alle Felder in $_IPS überschreiben, oder direkt eine Instanz über eine Instanz-Funktion ansprechen usw…
Michael

Reihenfolge

  • Ereignis 1 (ID 10001) ruft die Funktion XYZ der Instanz A auf (über eine Aktion der Instanz A oder ein im Ereignis eingebettetes PHP-Script),
  • Instanz A (ID 10002) ruft Funktionen ABC der Instanz B auf
  • in Instanz B (ID 10003) möchte ich herausbekommen, woher die aufgerufenen Funktion ABC aufgerufen wurde.
    Dabei spielt keine Rolle, welche Funktion den Aufruf getätigt hat sondern nur die Objekt-ID
    (also wäre die Aufruf-Reihenfolge 10001 → 10002 → 10003)

Diverse Aufruf-Varianten sind ja denkbar.
Ereignis 1 → Instanz A → Instanz B
Ereignis 2 → Instanz A → Instanz B
Ereignis 3 → Instanz B
Script I → Instanz B

etc pp. Und um Abläufe besser nachvollziehen zu können wäre es hilfreich, wenn ich dieses Kette herausbekommen und somit darstellen könnte

Script spielen hier keine bzw. keine zentrale Rolle. Die habe ich nur erwähnt, weil das in Skripten durch die Variable $_IPS[‚SENDER‘] zur Verfügung steht.

Meine Frage ist, gibt es in Modulen eine vergleichbare Information, wer diese Instanz ausgelöst hat? Ein Zugriff auf $_IPS habe ich ja meines Wissens nach nicht, oder?

Doch hast du.
Aber dadurch bekommst du nur den aktuellen Auslöser mit.
Nicht was davor war.
Und der Inhalt ist ja auch unterschiedlich, je nachdem wie dein Code gestartet wird.
Sogar bei RequestAction hast du dort z.b. den Inhalt ‚PHPModule‘ bei Sender. Bringt zwar nix, weil selbst mit RequestActionEx der Sender nicht mehr überschrieben wird, aber Zugriff auf die Variable hast du.
Michael

1 „Gefällt mir“

prima, dann muss ich bei meinem Versuch was faöschn gemacht haben

ja, aber das reicht mir in dem Fall vermutlich aus, muss ich mal bisschen „spielen“.

danke einstweilen

Ich kenne die Details deines Moduls nicht, aber prinzipiell klingt das eigentlich nach einer Kommunikation die über einen Splitter laufen sollte. Dann kann Instanz A auf diesem Wege auch alle benötigten Details an Instanz B weitergeben.