# Leerer Modulname bei Event Enlight\_Controller\_Front\_Dispatch

**URL:** <https://forum.shopware.com/t/leerer-modulname-bei-event-enlight-controller-front-dispatch/24359>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [2. Januar 2015 um 14:20 UTC](https://forum.shopware.com/t/leerer-modulname-bei-event-enlight-controller-front-dispatch/24359 "2015-01-02T14:20:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![arsin](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@arsin](https://forum.shopware.com/u/arsin)\
**Post date:** [2. Januar 2015 um 14:20 UTC](https://forum.shopware.com/t/leerer-modulname-bei-event-enlight-controller-front-dispatch/24359/1 "2015-01-02T14:20:45Z")

</div>

Hallo zusammen, wir nutzen mittlerweile fast ausschließlich [Event-Subscriber](https://github.com/dnoegel/scd-2014-plugin-development), um sauber strukturierte Plugins zu schreiben. Die Registrierung der Subscriber erfolgt, wie im Beispiel angegeben, über das Event Enlight\_Controller\_Front\_DispatchLoopStartup: ` public function install() { //... // Register an early event for our event subscribers $this-\>subscribeEvent( 'Enlight\_Controller\_Front\_DispatchLoopStartup', 'onStartDispatch' ); //... return true; } public function onStartDispatch(Enlight\_Event\_EventArgs $args) { if ($args-\>getRequest()-\>getModuleName() != 'frontend') { return; } //registrations } ` Nun ist es so, dass beim Registrieren eines Event-Subscribers meistens geprüft werden muss, ob man sich im frontend/backend/api-Modul befindet (siehe oben). Frontend-Controller werden aber meistens und insbesondere auch innerhalb der Std.-Links OHNE Modul aufgerufen(‘checkout/cart’, …). Zum Zeitpunkt des Events Enlight\_Controller\_Front\_DispatchLoopStartup wird jedoch noch kein Default-Modulname über Enlight\_Controller\_Dispatcher\_Default.php geladen und der Modulname ist leer. Wir behelfen uns aktuell durch folgende Prüfung: ` private function isNotFrontendEvent(Enlight\_Event\_EventArgs $arguments) { $controller = $arguments-\>getSubject(); $request = $controller-\>Request(); /\* \* the module may be empty, so we have to check if we are in the backend or the api module and if not, \* we'll assume to be in the frontend module \*/ return $request-\>getModuleName() == 'backend' || $request-\>getModuleName() == 'api'; } ` Ist das ein akzeptabler Workaround, oder gibt es einen besseren Weg?
