# Eigener Service in plugin activate() - "You have requested a non-existent service"

**URL:** <https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821>\
**Category:** Programmierung\
**Created:** [1. Juni 2019 um 16:05 UTC](https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821 "2019-06-01T16:05:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)\
**Post date:** [1. Juni 2019 um 16:05 UTC](https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821/1 "2019-06-01T16:05:38Z")

</div>

Hello again.

Da ich keine Logik in der Plugin “Bootstrap” haben will, möchte ich dieses wie in der Vergangenheit in Services auslagern.  
Mein Beispiel-Service funktioniert, da ich diesen in einem Subscriber nutze&nbsp;als auch im deactivate des Plugins:

```
public function deactivate(DeactivateContext $context): void
    {

        $customFieldService = $this->container->get(CustomFieldService::class);

        $customFieldService->deleteCustomFieldSet($context->getContext());

        parent::deactivate($context);

    }

```

Mein Service ist wie folgt registriert:

Leider klappt der Bezug des Services nicht in der activate Methode des Plugins.  
Der Aufruf sieht ja quasi identisch aus:

```
public function activate(ActivateContext $context): void
    {

        $customFieldService = $this->container->get(CustomFieldService::class);

        $customFieldService->createCustomFieldSet($context->getContext());

        parent::activate($context);

    }

```

Leider knallt es:

```
In Container.php line 277:
                                                                                                 
You have requested a non-existent service "Mill\ProductAdvantages\Service\CustomFieldService".  

```

Frage: Was muss getan werden, um auf eigene Services auch im activate() zugreifen zu können?

Schöne Grüße,  
Niklas

---

<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:** [1. Juni 2019 um 16:45 UTC](https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821/2 "2019-06-01T16:45:50Z")

</div>

Deine Services stehen während der Installation nicht zur Verfügung so wie in Shopware 5. Du musst sie selber erstellen

---

<div class="post-metadata">

**Author:** ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)\
**Post date:** [3. Juni 2019 um 06:53 UTC](https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821/3 "2019-06-03T06:53:01Z")

</div>

Moin @TeichDatensysteme‍,

um da nochmal etwas mehr Licht ins Dunkel zu bringen:

Jedes Plugin in Shopware 6 kann seinen Code nur ausführen, wenn es bereits aktiv ist. So wird zum Beispiel auch die&nbsp;_services.xml_&nbsp;Datei erst geladen, wenn das Plugin bereits aktiv ist.  
Du kannst dir aber sicherlich denken, dass in der&nbsp;_activate_&nbsp;Methode dein Plugin noch nicht aktiv ist - genau das soll ja die&nbsp;_activate_&nbsp;Methode ändern!

Da müsstest du also entsprechend auf klassische Klassen-Instanzierung zurückgreifen.

Gruß,  
Patrick&nbsp;

---

<div class="post-metadata">

**Author:** ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)\
**Post date:** [3. Juni 2019 um 08:36 UTC](https://forum.shopware.com/t/eigener-service-in-plugin-activate-you-have-requested-a-non-existent-service/59821/4 "2019-06-03T08:36:51Z")

</div>

Okay - Danke für die Hinweise!  
Ja, kann ich nachvollziehen - dann überlege ich mal, wie ich das ein- oder andere dann strukturiere - sollte gehen 🙂

Schöne Grüße!  
Niklas
