# Subscriber und Zugriff auf Container?

**URL:** <https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132>\
**Category:** Programmierung\
**Created:** [24. Februar 2022 um 14:10 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132 "2022-02-24T14:10:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [24. Februar 2022 um 14:10 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/1 "2022-02-24T14:10:45Z")

</div>

Noch eine Frage zu Subscriber:

Habe hier GenericPageLoadedEvent eingerichtet und müsste auf den Container zugreiffen, weiß aber ehrlich gesagt nicht wie. Versuche mit

```
$this->getContainer()->get(...);

```

klappen leider gar nicht. Klar, er findet die Methode nicht. Wie komme ich hier an den Container ran?

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [24. Februar 2022 um 16:28 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/2 "2022-02-24T16:28:17Z")

</div>

Schau dir doch einfach das entsprechende Entity auf Github an und schau welches Methoden dies hat. Dann weißt du, wie du an welche Variablen kommst.

---

<div class="post-metadata">

**Author:** ![abdullah](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@abdullah](https://forum.shopware.com/u/abdullah)\
**Post date:** [24. Februar 2022 um 22:35 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/3 "2022-02-24T22:35:05Z")

</div>

Hallo @R4M ,

dein Subscriber implementiert ja das Interface EventSubscriberInterface, so dass standardmäßig nur die statische Methode getSubscribedEvents vorhanden ist bzw. implementiert werden muss.

Sonst weißt dein Subscriber standardmäßig keine weiteren Methoden bzw. Variablen. Daher ist ein „$this-\>getContainer()“ ohne weiteres nicht möglich.

Brauchst du in deinem Subscriber nun andere Services wie z.B. den Container, müsstest du diese „injecting“ siehe [Dependency injection - Shopware Developer](https://developer.shopware.com/docs/guides/plugins/plugins/plugin-fundamentals/dependency-injection)

Den ContainerService findest du über die Service Id: „service\_container“

Grüße  
Abdullah

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [16. März 2022 um 07:24 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/4 "2022-03-16T07:24:55Z")

</div>

Ne, das mit setContainer in einem Subscriber funktioniert so nicht. Jedenfalls nicht bei mir. Damit der Subscriber funktioniert muss in der services.xml

```auto
<tag name="kernel.event_subscriber" />

```

Und genau damit läuft „service\_container“ nicht.

---

<div class="post-metadata">

**Author:** ![finngu](https://avatars.discourse-cdn.com/v4/letter/f/cab0a1/32.png) [@finngu](https://forum.shopware.com/u/finngu)\
**Post date:** [2. Februar 2023 um 17:15 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/5 "2023-02-02T17:15:00Z")

</div>

Gibt es hierzu schon eine Lösung? Habe gerade die gleiche Frage.

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [6. Februar 2023 um 08:16 UTC](https://forum.shopware.com/t/subscriber-und-zugriff-auf-container/93132/6 "2023-02-06T08:16:31Z")

</div>

Verstehe nicht, was daran nicht funktionieren soll? Funktioniert bei mir ohne Probleme.

MySubscriber.php

```php
private $container;

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

```

service.xml

```xml
<service id="My\Plugin\Subscriber\MySubscriber">
    <tag name="kernel.event_subscriber"/>
    <argument type="service" id="service_container"/>

```
