# Plugin Service in Unterordner 'Components'?

**URL:** <https://forum.shopware.com/t/plugin-service-in-unterordner-components/33544>\
**Category:** Programmierung\
**Created:** [13. Januar 2016 um 09:08 UTC](https://forum.shopware.com/t/plugin-service-in-unterordner-components/33544 "2016-01-13T09:08:17Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![DenKon26](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@DenKon26](https://forum.shopware.com/u/DenKon26)\
**Post date:** [13. Januar 2016 um 09:08 UTC](https://forum.shopware.com/t/plugin-service-in-unterordner-components/33544/1 "2016-01-13T09:08:17Z")

</div>

Hallo! Ich möchte in meinem Plugin gerne einen eigenen Service nutzen. In der Ordnerstruktur hatte ich diesen bisher direkt im Plugin-Ordner auf einer Ebene mit der Bootstrap.php: ` MyPlugin --| Bootstrap.php --| MyService.php ` In der Bootstrap habe ich use MyPlugins\MyPlugin, in der Service Klasse analog namespace MyPlugins\MyPlugin und in der afterInit() den Service-Namespace wie folgt registriert: ` $loader = $this-\>get('loader'); $loader-\>registerNamespace( 'MyPlugins\\MyPlugin', $this-\>Path() ); ` Eine Instanz des Service konnte ich in der Bootstrap wie folgt erstellen: ` $testService = new MyPlugin\MyService(); ` Nun möchte ich die Ordnerstruktur ändern: ` MyPlugin --| Components --| --| MyService.php --| Bootstrap.php ` Inwiefern muss ich die Namespaces oder sonstiges ändern? Wenn ich die Datei verschiebe, erhalte ich in meiner Entwicklungsumgebung keine Fehler, doch beim Ausführen im Shop einen Fatal Error, dass die Klasse nicht gefunden wird. Brauch ich als Namespace nun MyPlugins\MyPlugin\Components?

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [13. Januar 2016 um 11:13 UTC](https://forum.shopware.com/t/plugin-service-in-unterordner-components/33544/2 "2016-01-13T11:13:15Z")

</div>

[quote=“DenKon26”]Brauch ich als Namespace nun MyPlugins\MyPlugin\Components?[/quote] Es sollte reichen das Du bei registerNamespace den Wert $this-\>Path() zu $this-\>Path().’/Components’ Achtung ist nicht getestet 😉 Gruß

---

<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:** [13. Januar 2016 um 14:03 UTC](https://forum.shopware.com/t/plugin-service-in-unterordner-components/33544/3 "2016-01-13T14:03:59Z")

</div>

In der Bootstrap z.B. ` public function afterInit() { $this-\>get('Loader')-\>registerNamespace( 'ShopwarePlugins\PrefixPluginname', $this-\>Path() ); } ` In deinem Plugin im Ordner „Components“ die Beispielklasse Foo.php ` namespace ShopwarePlugins\PrefixPluginname\Components; class Foo { } ` Dann kannst Du per use ` use ShopwarePlugins\PrefixPluginname\Components\Foo; ` und ` $foo = new Foo(); ` deine Klasse benutzen. Schöne Grüße, Niklas
