In uninstall Methode Service aus Plugin verwenden

Hallo,

irgendwie ist es nicht möglich in meinem Plugin in der uninstall Methode einen Service aus dem Plugin zu verwenden. Es wird immer der Fehler geschmissen: „You have requested a non-existent service“. In der services.xml habe ich public=„true“ gesetzt wie in der Doku beschrieben.

In SW 5 war das Ganze noch ohne Problem so nutzbar.

Hat evtl. einer einen Tipp dazu?

Danny

Das geht in Shopware 6 nicht. Da der Container nur aktive Plugins hat

1 „Gefällt mir“

Hi Shyim,

danke für die Antwort dazu. Hab mich schon gewundert.
Dann gibt es wohl keinen vernünftigen Weg eine Funktion aus dem Service während des deinstallierens zu nutzen. Tja, dann müssen die Nutzer wohl vor dem deinstallieren manuell den Code ausführen über einen Button. Schade. :frowning:

Danny

 

 

Du kannst auch die Klasse selber erzeugen :slight_smile:

@Shyim schrieb:

Du kannst auch die Klasse selber erzeugen :)

Sorry, verstehe nicht genau was du damit meinst?

Wahrscheinlich mittels händischem Aufrufen des Konstruktur über den definierten Namespace.

$myClass = new myClass($param1, $param2);

 

Moin,

ja, so habe ich es jetzt auch gemacht, gefällt mir aber nicht wirklich, weil ich in der Klasse auch einen Service nutze fürs eigene Entity, welcher ja auch nicht mehr verfügbar ist.
Nun übergebe ich als workaround ein Entity aus dem Core. :frowning:

Danny

Hallo Danny,

kannst du mal schauen, ob das für dich klappt? Shopware 6: Using setter injection in plugins

Viele Grüße aus Schöppingen

cool Michael Telgmann

Hi Michael,

bekomm es nicht hin oder es funktioniert nicht: „Call to a member function on null“ wird geschmissen. Ich habe wie in dem von dir verlinkten Dokueintrag den Service in die required Methode zugewiesen.

Hallo Danny,

dann scheint es für eigene Services nicht zu funktionieren. Allerdings kannst du dir so jeden Shopware Service holen und dann solltest du dir deinen Services selber instanzieren können. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

Danke für den support.