# !EventComponentHandler kein Eventfilter in Shopware 5.3

**URL:** <https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356>\
**Category:** Programmierung\
**Created:** [19. September 2017 um 13:00 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356 "2017-09-19T13:00:48Z")\
**Posts on this page:** 14\
**Page:** 1

<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:** [19. September 2017 um 13:00 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/1 "2017-09-19T13:00:48Z")

</div>

Liebste Community,

ich habe ein Plugin welches die ArticleSliderEmotion Artikel über den „Shopware\_Controllers\_Widgets\_Emotion\_AddElement“ modifiziert, welches unter Shopware 5.2 einwandfrei läuft, unter Shopware 5.3 jedoch nicht mehr.

Auf folgender Seite steht geschrieben

> **Hint** : Existing plugins using the old method below will still work in Shopware 5.3.

> **[Custom shopping world elements](https://developers.shopware.com/developers-guide/custom-shopping-world-elements/#shopware-5.3-and-above)**
>
> Custom shopping world elements

Dies kann ich leider nur halb bestätigen, da dieser Event Filter lediglich im EventComponentHandler registriert wird und nicht in den restlichen, nachfolgend aufgeführten, ComponentHandlern.

- ArticleComponentHandler
- ArticleSliderComponentHandler
- BannerComponentHandler
- BannerSliderComponentHandler
- BlogComponentHandler
- CategoryTeaserComponentHandler
- Html5VideoComponentHandler
- ManufacturerSliderComponentHandler

Das heißt über diesen in Shopware 5.2 noch funktionierenden Weg, geht es für diese EmotionComponents in Shopware 5.3 nicht mehr.

Nun die Frage, wie wäre das ideale Vorgehen um diesen EmotionComponentHandler zu beeinflußen? Kann ich den ArticleSliderComponentHandler über mein Plugin einfach überschreiben? (ohne Core Hack versteht sich) Wird dieser EventFilter für die anderen ComponentHandler noch nachgezogen @shopware‍?&nbsp;

Beste Grüße

_#edit Das Tags Input Feld in diesem Forum funktioniert auch nicht, und ein Klick auf „Zeige populäre Tags“ macht einen redirect auf diese Seite und löscht dabei den eingegeben Text.&nbsp; ![Thumb-down](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/thumb-down.png "Thumb-down")_

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [19. September 2017 um 14:00 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/2 "2017-09-19T14:00:48Z")

</div>

Hallo,

ab Shopware 5.3 sind die ComponentHandler alles Services, die über den DI-Container verfügbar sind. Siehe&nbsp;[shopware/services.xml at 5.3 · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Bundle/EmotionBundle/services.xml#L59)  
Entsprechend lassen sich die Handler nun einfach per Decorator Pattern anpassen.&nbsp;[https://developers.shopware.com/developers-guide/plugin-system/#decorate-a-service](https://developers.shopware.com/developers-guide/plugin-system/#decorate-a-service)

Viele Grüße aus Schöppingen

![cool](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "cool")&nbsp;Michael Telgmann

---

<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:** [20. September 2017 um 13:09 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/3 "2017-09-20T13:09:40Z")

</div>

Danke Michael, für deine schnelle Antwort.

Das heißt für mich im Umkehrschluss, dass es keine Abwärtskompatibilität zu 5.2 für die von mir aufgezählten ComponentHandler gibt, richtig?

Beste Grüße

---

<div class="post-metadata">

**Author:** ![mosaiq\_marcel](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@mosaiq\_marcel](https://forum.shopware.com/u/mosaiq_marcel)\
**Post date:** [9. Juli 2018 um 20:16 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/4 "2018-07-09T20:16:49Z")

</div>

Hallo mowlwurf,

konntest du dein Einkaufsweltenelement mit SW 5.3 lauffähig bekommen?

WIr sind gerade dabei einen Shop von 5.2.25 auf 5.4.5 zu aktualisieren und da funktionieren unsere Einkaufsweltenelemente nicht mehr, da wohl das Event „Shopware\_Controllers\_Widgets\_Emotion\_AddElement“ nicht mehr ausgelöst wird. Die Elemente sind noch als Legacy-Plugin entwickelt und wir möchten die Neuprogrammierung zum neuen Plugin-System nach Möglichkeit umgehen, da wir ja dann das alte Plugin löschen, und das neue Plugin dann neu installieren müssten was dann sicher Datenverlust nach sich ziehen würde.

Oder hat jemand einen Tipp, wie wir hier am besten vorgehen?

Grüße

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [10. Juli 2018 um 03:21 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/5 "2018-07-10T03:21:52Z")

</div>

Man kann das Decorate-Pattern auch im alten Plugin-Sytem anwenden @mosaiq\_marcel‍ :

[https://developers.shopware.com/developers-guide/legacy-plugin-system/#decorate-a-service](https://developers.shopware.com/developers-guide/legacy-plugin-system/#decorate-a-service)

Viele Grüße

---

<div class="post-metadata">

**Author:** ![mosaiq\_marcel](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@mosaiq\_marcel](https://forum.shopware.com/u/mosaiq_marcel)\
**Post date:** [10. Juli 2018 um 09:20 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/6 "2018-07-10T09:20:21Z")

</div>

Hallo simkli,

Danke für die schnelle Antwort. Welchen Service müsste ich denn da dekorieren und wie genau?

Wir haben in unserem Fall ja individuell entwickelte Einkaufsweltenelemente. Eigentlich müsste ich ja lediglich für jedes Element einen eigenen ComponentHandler bereitstellen und diesen im DI-Container registrieren. Allerdings sind das noch Lecacy-Plugins und da gibt es noch keine service.xml. Stellt sich also momentan die Frage, wie ich den ComponentHandler mit dem Tag “shopware\_emotion.component\_handler” mit PHP im Di-Container registrieren kann.

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [10. Juli 2018 um 09:40 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/7 "2018-07-10T09:40:35Z")

</div>

@mosaiq\_marcel‍ : Ich habe das Vorgehen eben noch einmal im Quellcode überprüft. Es sollte auch weiterhin mit dem Event gehen.

Sollte kein ComponentHandler registriert werden, greift automatisch der EventComponent-Handler, welcher folgendes Filter-Event aufruft:

Shopware\_Controllers\_Widgets\_Emotion\_AddElement

siehe hier: [shopware/EventComponentHandler.php at 56df57575909854d2dec7fcba07500e27a3361ee · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/56df57575909854d2dec7fcba07500e27a3361ee/engine/Shopware/Bundle/EmotionBundle/ComponentHandler/EventComponentHandler.php#L85)

Das heißt, es muss eigentlich weiterhin über dieses Event funktionieren. Ich denke aber, dass du es evtl. zu spät registrierst (bzw. dein Subscriber zu spät bei Shopware angemeldet wird). Wenn du es in der install-Methode mir registerEvent machst, sollte es auf alle Fälle weiterhin funktionieren.

Viele Grüße

&nbsp;

---

<div class="post-metadata">

**Author:** ![mosaiq\_marcel](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@mosaiq\_marcel](https://forum.shopware.com/u/mosaiq_marcel)\
**Post date:** [10. Juli 2018 um 13:11 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/8 "2018-07-10T13:11:52Z")

</div>

Hallo simkli,

Danke für deine Hilfe, davon bin ich bislang auch ausgegangen. Allerdings wird die Methode&nbsp;EventComponentHandler::handle()&nbsp;überhaupt nicht ausgeführt ☹ Das Event ist in der install-Methode registriert.

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [10. Juli 2018 um 13:18 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/9 "2018-07-10T13:18:39Z")

</div>

@mosaiq\_marcel‍: Kannst du mal prüfen, ob es einen Eintrag in der s\_core\_subscribes-Tabelle gibt?

Viele Grüße

---

<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:** [10. Juli 2018 um 18:12 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/10 "2018-07-10T18:12:30Z")

</div>

Es ist normal, dass der Event nicht gefeuert wird. Ab 5.3 gibs den Break, dass dieses Event nur für deine neuangelegten Elemente gefeuert wird…

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [10. Juli 2018 um 18:39 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/11 "2018-07-10T18:39:16Z")

</div>

Hallo,

hier gibt es weitere Informationen und Beispiele&nbsp;dazu:&nbsp;[https://developers.shopware.com/developers-guide/custom-shopping-world-elements/#shopware-5.3-and-above](https://developers.shopware.com/developers-guide/custom-shopping-world-elements/#shopware-5.3-and-above)&nbsp;.

Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![netzperfekt](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/netzperfekt/32/7765_2.png) [@netzperfekt](https://forum.shopware.com/u/netzperfekt)\
**Post date:** [18. August 2018 um 07:13 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/12 "2018-08-18T07:13:04Z")

</div>

> [@mosaiq\_marcel schrieb:](https://forum.shopware.com/profile/23551/mosaiq_marcel "mosaiq\_marcel")
> 
> Stellt sich also momentan die Frage, wie ich den ComponentHandler mit dem Tag „shopware\_emotion.component\_handler“ mit PHP im Di-Container registrieren kann.

Ich stehe gerade vor dem selben Problem - hast Du das irgendwie lösen können?

Vielen Dank,  
Nils&nbsp;

---

<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:** [20. August 2018 um 10:44 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/13 "2018-08-20T10:44:09Z")

</div>

Wurde hinzugefügt mit&nbsp;[SW-22394 - Add event for registering component handler · shopware/shopware@11fc5eb · GitHub](https://github.com/shopware/shopware/commit/11fc5eb2bbc4b4c3817b3c5ddabd656989012abf)

---

<div class="post-metadata">

**Author:** ![netzperfekt](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/netzperfekt/32/7765_2.png) [@netzperfekt](https://forum.shopware.com/u/netzperfekt)\
**Post date:** [22. August 2018 um 06:35 UTC](https://forum.shopware.com/t/eventcomponenthandler-kein-eventfilter-in-shopware-5-3/48356/14 "2018-08-22T06:35:57Z")

</div>

Für die Nachwelt:

> $this-\>subscribeEvent(‚Shopware\_Emotion\_Collect\_Emotion\_Component\_Handlers‘,&nbsp; ‚registerEmotionComponentHandler‘);
> 
> public function registerEmotionComponentHandler(\Enlight\_Event\_EventArgs $args)  
> {  
> &nbsp;&nbsp; &nbsp;$result = new ArrayCollection();  
> &nbsp; &nbsp; $result-\>add(new EmotionComponentHandler());
> 
> &nbsp; &nbsp; return $result;  
> }

(Natürlich muss der _EmotionComponentHandler_ ebenfalls implementiert sein, siehe z.B.&nbsp;[Custom shopping world elements](https://developers.shopware.com/developers-guide/custom-shopping-world-elements/#shopware-5.3-and-above)

&nbsp;
