[5.2] Service mehrfach überschreiben

Hallo zusammen,

ich habe gerade folgendes Problem. Und zwar versuche ich, den Service RegisterServiceInterface zu überschreiben. Dies funktioniert auch wunderbar für mein Plugin. Nun kommt aber ein weiteres Plugin dazu, welches auch den selben Service anspricht (Plugin ist leider verschlüsselt). Nachdem ich dieses installiere, erhalte ich einen 503. Welches ist die sauberste Möglichkeit, dass beide Plugins den selben Service nutzen können ohne das ein 503 entsteht?

 

Danke für die Hilfe :wink:

Hallo,

was sagt denn der 503er Fehler genau aus? Fehlermeldung bzw. Debug Meldung?

Also prinzipiell heißt das ja, dass das verschlüsselte Plugin versucht etwas aufzurufen, was es entweder nicht in Deiner Service Implementation gibt, oder es erwartet einen anderen return Wert. Ohne die genaue Fehlermeldung ist das aber nur Rätselraten.

Du kannst außerdem Services jederzeit überschreiben, in jedem Event. Vielleicht würde es auch helfen, es auf das richtige Event einzugrenzen?

 

Du könntest auch per Reflection einiges herausfinden. Das muss ja zur Laufzeit entschlüsselt werden und dann kannst Du z. B. mittels get_class oder get_class_methods oder debug_backtrace einiges heraus finden.

Eine Notlösung wäre z. B. auch, dass Du per Reflection jeweils in den aufgerufenen Methoden des Service prüfst, ob der Caller das verschlüsselte Plugin ist oder Deines und je nachdem dann einen anderen Code ausführst.

 

 

MFG

 

derwunner