Auf Klasse aus anderem Plugin in Console Comand zugreifen

Hi, ich habe in einem Plugin über $this->Application()->Loader()->registerNamespace() ein Helfer-Klasse registriert. Daraauf kann in innerhalb meines Controllers auch zugreifen.

 

Jetzt habe ich ein  2. Plugin bei dem ich ein COnsolen Command registriert habe. Innerhalb dieses Commandos kann ich aber nicht auf meine Klasse aus dem 1. Plugin zugreifen. 

Steht der Namespace hier nicht zur Verfügung bzw. ist nicht bekannt?

Vielen Dank

 

Ich würde die Klasse einfach in den DI Container legen. Damit soltlest du ohne Probleme dran kommen. 

Verwendest Du das neue Plugin System?

Die Klasse die ich verwenden möchte, stammt aus dem alten Plugin System. Ich möchte sie aber in einen Plugin im neuen System verwenden. 

Wie kann ich die Klasse in den DI Container legen?

vielen Dank. 

Die Beschreibung Plugin services sollte dir da weiterhelfen :slight_smile:

1 Like

hhmmm…  das hat irgendwie nciht funktionier. ich habe jetzt in meiner 1. Plugin folgendes Event registriert:

$this->subscribeEvent(
            'Enlight_Bootstrap_InitResource_my_plugin_test.my_services',
            'onInitMyServices'
        );

/**
     * @return \Shopware\Test\MyServices
     */
    public function onInitMyServices()
    {
        return new \Shopware\Test\MyServices();
    }

 

public function afterInit()
    {

        //register component
        $this->Application()->Loader()->registerNamespace(
            'Shopware\Test',
            $this->Path() . "Components/"
        );

    }

Wenn ich nun in meinem 2. Plugin folgendes aufrufe: 

$test = Shopware()->Container()->get('my_plugin_test.my_services');

erhalte ich folgenden fehler: 

[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]                     

  You have requested a non-existent service “my_plugin_test.my_services”.

Kann ich irgendwo prüfen ob das Event “Enlight_Bootstrap_InitResource” korrekt registriert wurde?

 

Kannst du mir beide Plugins bitte einmal schicken? Dann schaue ich mir gerne an.

@Thomas schrieb:

Kannst du mir beide Plugins bitte einmal schicken? Dann schaue ich mir gerne an.

Danke, das ist nett von dir. leider ist das eine Plugin sehr komplex. ich versuche das mal in 2 testPlugins nachzubauen und schicke sie dir dann gern. 

ok, ich habe das jetzt noch mal in simplen Plugins nachgebaut. Hier funktioniert es. Da muss ich noch mal schauen wo der fehler liegt. Vielen Dank erst einmal.