zugriff auf den container

Hallo liebe shopware- community,

ich bin neu hier und probiere mich gerade daran ein Plugin, nach dem Developer Training, zu erstellen. Aktuell komme ich leider nicht weiter.

Ich hänge gerade im Kapitel „Dependency Injection“ fest, wo in dem Plugin mittels $this->container ein service nutzen möchte dies geht leider nicht. container wird mir auch nicht vorgeschlagen bei den ergebnissen. 

Falls dies schonmal gefragt wurde tut es mir leid, ich habe diesbezüglich nichts im Forum gefunden

mfg Björn

In was für einer Klasse möchtest du denn $this->container aufrufen?

Funktioniert evtl. Shopware()->Container() ?

Hey Hobel,

in einer Plugin Klasse ich erbe wie gefordert von Plugin. Laut Video soll dann $this->container möglich sein.

Shopware()->Container(), dort wird Shopware() nicht als Methode angezeigt.

///https://www.bilder-upload.eu/bild-5be0c7-1570456825.png.html///

Ohne die /// 

anders momebntan leider nicht möglich. Spinnt etwas :slight_smile:

Hallo,

das geht eigentlich recht einfach

service.xml:
 

und im Subscriber dann :

container = $container;
    }

    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Detail' => 'onFrontendDetail'
        ];
    }

    public function onFrontendDetail(Enlight_Event_EventArgs $args)
    {
        $this->container->...
    }
}

Grüße Lukaschel

Danke dir Lukaschel :slight_smile: ,

das Problem besteht allerdings in der Plugindatei Es gelingt mir nicht den container so aufzurufen aufzurufen.

con..... 
    }


}

im Developer Training Basic Beispiel: Der Attribute-Service in Minute 2:20

 

 

Wie wärs einfach so ?

container = $container;
    }

    public function install(InstallContext $context)
    {
       $this->con..... 
    }


}

 

1 Like
use Symfony\Component\DependencyInjection\ContainerBuilder;


class BCWartung extends Plugin
{
    private $container;


    public function build(ContainerBuilder $container)
    {
        $this->container = $container;
    }

 

 DependencyInjection\ContainerBuilder wird leider nicht gefunden. 

sry für meinerseits wenigen Ideen bin noch Anfänger :slight_smile:

Aktuell habe ich das Symfony Plugin in verdacht, da  das aufrufen von Dependency Injection Container und Doctrine\Common\Collections\ArrayCollection

nicht möglich ist. Collections\ArrayCollection wird hervorgehoben und mir undefined namespace collection anzeigt.

 

  

Falls jemnd ein ähnliches Problem hat mit Vagrant und Symfony.

Ich habs hinbekommen :smiley:

Ich habe ein neues Project angelegt („File>New Project from Existing Files…“), dadurch kann ich endlich auf Symfony zugreifen.