# Config des Plugins auslesen in build() - Methode

**URL:** <https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237>\
**Category:** Programmierung\
**Created:** [25. April 2019 um 11:17 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237 "2019-04-25T11:17:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![paddelboot](https://avatars.discourse-cdn.com/v4/letter/p/e95f7d/32.png) [@paddelboot](https://forum.shopware.com/u/paddelboot)\
**Post date:** [25. April 2019 um 11:17 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/1 "2019-04-25T11:17:24Z")

</div>

Hallo,

Ich versuche die Plugin-Config auszulesen, um die Werte dem Container zur Verfügung zu stellen. Ich benötige diese Werte in der sevices.xml.

```
public function build(ContainerBuilder $container) { $config = $container->get('config')->getByNamespace('MyPlugin'); $container->setParameter( 'myplugin.customernumber', $config[ 'customernumber' ); parent::build($container); }

```

Und dann die services.xml:

```
 %myplugin.customernumber% 

```

&nbsp;

Dies führt zu der Fehlermeldung

**Fatal error: Uncaught Symfony\Component\DependencyInjection\Exception\RuntimeException: You have requested a synthetic service (“db\_connection”). The DIC does not know how to construct this service.**

Was für mich unverständlich ist, wo verlange ich nach einem Service “db\_connection”?

&nbsp;

Paddelboot

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [25. April 2019 um 13:21 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/2 "2019-04-25T13:21:13Z")

</div>

Du&nbsp;nicht direkt, aber der config Service hat dies als Abhängigkeit.

---

<div class="post-metadata">

**Author:** ![scriptfarm](https://avatars.discourse-cdn.com/v4/letter/s/2acd7d/32.png) [@scriptfarm](https://forum.shopware.com/u/scriptfarm)\
**Post date:** [25. April 2019 um 13:54 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/3 "2019-04-25T13:54:34Z")

</div>

Also wenn ich Dein Posting richtig verstehe, kannst Du die Config eines Plugins so auslesen.

Shopware()-\>Config()-\>getByNamespace(‚NAME-PLUGIN‘, ‚VALUE-ZUM-AUSLESEN‘)

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [25. April 2019 um 15:10 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/4 "2019-04-25T15:10:10Z")

</div>

Hallo @paddelboot‍,

hinzufüg die ganze Config als service sttat diese wert beim build funktion wie so:

```
     yourpluginname

```

dann beim deine Service hinzufüg diese service als argument wie so :

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [29. April 2019 um 11:42 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/5 "2019-04-29T11:42:18Z")

</div>

Achtung diese Variante beachtet die abweichenden Konfigurationen nicht (Sprachshop / Subshop)

---

<div class="post-metadata">

**Author:** ![paddelboot](https://avatars.discourse-cdn.com/v4/letter/p/e95f7d/32.png) [@paddelboot](https://forum.shopware.com/u/paddelboot)\
**Post date:** [29. April 2019 um 12:12 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/6 "2019-04-29T12:12:51Z")

</div>

Ich hatte es jetzt so gelöst, dass ich den Config Reader als Parameter an meinen Service übergebe, und dann dort im Konstruktor die Werte in die Klassenparameter lese. Nicht so elegant, geht aber erstmal.

&nbsp;

&nbsp;

```
    public function __construct( ConfigReader $ConfigReader ) {

        $config = $ConfigReader->getByPluginName( $PluginName );
        $this->CustomerNumber = $config['ClientNumber'];
        $this->AuthUsername = $config['Username'];
        $this->AuthPassword = $config['Password'];
    }

```

@scriptfarm Die Shopware() - „Globale“ vermeide ich lieber, ehrlich gesagt.

PS: Nach dem Bearbeiten meines Eintrages bestehen die Codeschnipsel aus lauter Entities - irgendwie schade.

---

<div class="post-metadata">

**Author:** ![Halbesbit](https://avatars.discourse-cdn.com/v4/letter/h/e480ec/32.png) [@Halbesbit](https://forum.shopware.com/u/Halbesbit)\
**Post date:** [7. Januar 2021 um 15:35 UTC](https://forum.shopware.com/t/config-des-plugins-auslesen-in-build-methode/59237/7 "2021-01-07T15:35:41Z")

</div>

> [@Shyim schrieb:](https://forum.shopware.com/profile/20792/Shyim "Shyim")
> 
> Achtung diese Variante beachtet die abweichenden Konfigurationen nicht (Sprachshop / Subshop)

Auch wenn der Thread schon etwas älter ist. Gibt es in der services.xml die Möglichkeit den Shop/Subshop als zweites Argument zu übergeben?

```
    %my_plugin_name.plugin_name%
    %???shopware.shop???%

```

So könnte ich einen Fehler ganz leicht fixen anstatt im Subscriber die Config nochmal mit:

```
$config = $controller->get('shopware.plugin.cached_config_reader')->getByPluginName('PluginNameXXX', Shopware()->Shop());

```

zu laden anstatt die injectete zu benutzen.

Gruß Gunnar
