Bootstrap event/hook functions auslagern

Hallo zusammen, ist es möglich das ein abgefangener Event bzw. Hook eine Funktion außerhalb von Bootstrap aufruft? Mein Problem ist, dass mein Bootstrap mit ca. 4000 Zeilencode unübersichtlich ist, ich dachte ich strukturiere es mit Unterordnern bzw. lagere die aufzurufenden Methoden in eine separate Klasse aus. Habe mir etwa so vorgestellt: $this-\>subscribeEvent( 'Shopware\_Controllers\_Frontend\_Detail::indexAction::after', 'test/listAllArticleVoteComment' ); Hier würde ich die function “listAllArticleVoteComment()” in eine separate Klasse auslagern. Oder wie macht ihr es, um code noch übersichtlich zu gestallten? Über paar Tipps/Hinweise würde ich mich sehr freuen :slight_smile:

Hallo userdimon, direkt im Listener dürfte das nicht machbar sein. Du kannst also nicht durch die Angabe des Parameters auf eine andere Klasse o.Ä. verweisen. Es wird definitiv nach der Methode “listAllArticleVoteComment” in deiner Bootstrap gesucht. Was du aber durchaus machen kannst, ist dann innerhalb der Methode bspw. einen anderen Service zu benutzen, der die Logik übernimmt. Schau dir dazu auch unbedingt einmal den folgenden Guide an: https://developers.shopware.com/develop … /services/ Also: public function listAllArticleVoteComment() { $this-\>get('my\_service')-\>macheWas(); } Dafür müsstest du dir nur deinen eigenen Service anlegen. Somit bleiben dir lediglich die Funktions-Aufrufe, was deine Bootstrap deutlich schmälern sollte. Hilft dir das weiter? Gruß, Patrick :shopware:

Danke habe zuerst an static class gedacht, aber mit services ist es saubere Lösung. Gesendet von iPhone mit Tapatalk

Hi, das Auslagern von Events in eigene Klassen ist möglich, wenn du das sog. Subscriber-Pattern nutzt. Siehe hier: https://developers.shopware.com/blog/20 … -callbacks Daniel