Verwaltung von Kontroller- Instanzen in Oxid

Hallo!

Es gibt ein Modul mit Controller [B]C[/B] [I](extends oxUBase)[/I]

Benutzer ruft [B]fnc А[/B] von [B]C[/B] auf:

[B]/?cl=C&fnc=A[/B]

  • Es wird Konstruktor [B]C[/B] aufgerufen (Kopie [B]C1[/B]) [U]//Falsch[/U]
  • Es wird fnc [B]А[/B] von Klasse [B]C1[/B] aufgerufen [U]//Falsch[/U]

Benutzer ruft fnc [B]B[/B] von [B]C[/B] auf:

  • [I]es wird Konstruktor C [B]noch einmal[/B] aufgerufen [I]C[/I] (noch [B]eine neue[/B] Kopie C2)[/I] [U]//Falsch[/U]
  • Es wird fnc [B]B[/B] von Klasse [B]C1[/B] aufgerufen [U]//Falsch[/U]

Es gibt [B]eine und nur eine Instanz[/B] von [B]C[/B].
Konstruktor von [B]C[/B] wird [B]nur einmal[/B] aufgerufen.

Harte Drogen am Morgen vertreiben Kummer und Sorgen, stimmts?

manchmal habe ich das Gefühl, dass OXID selbst ist unter Beeinflussung von harten Drogen entwickelt wurden.

Und OXID Support isst immer Zauberpilze :slight_smile:

Benutzer ruft fnc А von C auf:

  • Es wird Konstruktor C aufgerufen (Kopie C1) //Richtig
  • Es wird fnc А von Klasse C1 aufgerufen //Richtig

Benutzer ruft fnc B von C auf:

  • es wird Konstruktor C noch einmal aufgerufen (noch eine neue Kopie C2) //Richtig
  • Es wird fnc B von Klasse C2 aufgerufen //Richtig

Es gibt eine und nur eine Instanz von C.
Konstruktor von C wird nur einmal aufgerufen.
//Falsch.

1 Aufruf = 1 Controllerinstanz + 1 Konstruktoraufruf + 1 Funktionsaufruf.
Danach ist Ruhe im Karton. Tabula Rasa. Bei einem erneuten Aufruf ist es wieder das gleiche, er weiß nichts von dem ersten Aufruf. Wenn du eine Persistenz haben willst gibt es dafür Session, DB, Dateisystem, Client etc.