# Service für andere Plugins erzeugen

**URL:** <https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527>\
**Category:** Programmierung\
**Created:** [16. März 2020 um 10:19 UTC](https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527 "2020-03-16T10:19:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Exe](https://avatars.discourse-cdn.com/v4/letter/e/49beb7/32.png) [@Exe](https://forum.shopware.com/u/Exe)\
**Post date:** [16. März 2020 um 10:19 UTC](https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527/1 "2020-03-16T10:19:46Z")

</div>

Wir werden sicher einige Plugins für unseren Shop bauen und deswegen möchte ich Services (Helper) in einem Basis Plugin erstellen, auf die andere Plugin zugreifen können. So ist mir zB recht unerwartet aufgefallen, dass innerhalb von Shopware nichtmal so banale Daten wie der locale code (de\_de, fr\_fr, …) des aktuellen Shops zur Verfügung stehen.

In Swag PayPal habe ich genau den Service gefunden, den ich nutzen würde -\> Util\LocaleCodeProvider

Ich kann diesen innerhalb meiner Plugins nutzen. Ich würde aber sehr gern die Abhängigkeit von Swag Plugins minimal halten, dass Updates dieser nicht meine eigenen Plugins zerschießen.

Ich habe also ein Basic Plugin gestartet, installiert und aktiviert. Die Service Klasse angelegt und in der service.xml registiert. Will ich diese allerdings in meinem anderen Plugin nutzen, erhalte ich imemr den Fehler, dass er den Service nicht kennt. "The service „Smy\ProductDesigner\Subscriber\ProductSubscriber“ has a dependency on a non-existent service „Smy\Basic\Service\LocaleCodeService“. "

Basic service.xml

Plugin service.xml

Im Subscriber ist entsprechend auch per Use der Service eingebunden (use Smy\Basic\Service\LocaleCodeService;) und im constructor wir er ebenfalls übernommen.

PHPStorm kann mit dem Symfony Plugin auch die Pfade alle wunderbar auflösen. Habe caches geleert und auch ein Reinstall des Plugins versucht.

Steh ein wenig auf dem Schlauch, was falsch sein könnte.

---

<div class="post-metadata">

**Author:** ![Exe](https://avatars.discourse-cdn.com/v4/letter/e/49beb7/32.png) [@Exe](https://forum.shopware.com/u/Exe)\
**Post date:** [17. März 2020 um 11:13 UTC](https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527/2 "2020-03-17T11:13:42Z")

</div>

Ich werde den Service vorerst direkt in der Plugin hinzufügen.

Wenn aber jemand weiß, wie ich Services für andere Plugins zur Verfügung stellen kann, wäre ich trotzdem weiterhin über eine Antwort dankbar.

Das PayPal Plugin nutzt da scheinbar eine&nbsp;DependencyInjection aber bin nicht sicher, ob das für den globalem Zugriff benutzt wurde oder aus einem anderen Grund.

---

<div class="post-metadata">

**Author:** ![mowlwurf](https://avatars.discourse-cdn.com/v4/letter/m/77aa72/32.png) [@mowlwurf](https://forum.shopware.com/u/mowlwurf)\
**Post date:** [17. März 2020 um 12:21 UTC](https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527/3 "2020-03-17T12:21:09Z")

</div>

Hallo,

Du musst den Service als public deklarieren.

Dann kannst Du auch von anderen Plugins darauf zugreifen.

---

<div class="post-metadata">

**Author:** ![Exe](https://avatars.discourse-cdn.com/v4/letter/e/49beb7/32.png) [@Exe](https://forum.shopware.com/u/Exe)\
**Post date:** [17. März 2020 um 13:41 UTC](https://forum.shopware.com/t/service-fur-andere-plugins-erzeugen/65527/4 "2020-03-17T13:41:27Z")

</div>

Das hatte ich bereits probiert. Das bringt leider nichts.

Ist aber zb beim PayPal Plugin auch nicht gesetzt.
