# Hook funktioniert nicht: $args-&gt;getReturn() gibt NULL zurück

**URL:** <https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [26. September 2011 um 10:35 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461 "2011-09-26T10:35:05Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![waldicom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/waldicom/32/12881_2.png) [@waldicom](https://forum.shopware.com/u/waldicom)\
**Post date:** [26. September 2011 um 10:35 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/1 "2011-09-26T10:35:05Z")

</div>

Hallo zusammen, ich habe leider ein kleines (oder eher größeres :)) Problem mit einem Hook, was ich verwenden möchte. Ich habe einen Hook erstellt und möchte auf die Ergebnisse der „parent“ Funktion zugreifen. Der Hook selbst ist so definiert: `$hook1 = $this-\>createHook( 'Shopware\_Controllers\_Frontend\_Checkout', 'changeQuantityAction', 'onCheckout\_changeQuantityAction\_After', Enlight\_Hook\_HookHandler::TypeAfter, 0); $this-\>subscribeHook($hook1); ` Die Funtktion onCheckout\_changeQuantityAction\_After sieht so aus: `static function onCheckout\_changeQuantityAction\_After(Enlight\_Hook\_HookArgs $args){ $ret = $args-\>getReturn(); Shopware()-\>Log()-\>log("onCheckout\_changeQuantityAction\_After!!", Zend\_Log::INFO); Shopware()-\>Log()-\>log($args-\>getReturn(), Zend\_Log::INFO); }` Und diese Funktion gibt folgendes aus (wenn ich Anzahl der Artikel im Warenkorb ändere): [quote] onCheckout\_changeQuantityAction\_After!! NULL [/quote] Ich habe die Definition des Hooks mit Doku verglichen, scheint auf den ersten Blick richtig zu sein. Ich habe auch versucht andere Funktionen zu verwenden (wie z.B. $args-\>getName()) - das geht. aber mit getReturn() geht es nicht. Hätte vielleicht jemand einen Tipp für mich? Vielen Dank.

---

<div class="post-metadata">

**Author:** ![waldicom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/waldicom/32/12881_2.png) [@waldicom](https://forum.shopware.com/u/waldicom)\
**Post date:** [26. September 2011 um 15:23 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/2 "2011-09-26T15:23:05Z")

</div>

Hat sich erledigt, vielleicht hilft das jemanden: habe in den Sourcen nachgeschaut, die Funktion changeQuantityAction() hat keinen Rückgabewert.

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [26. September 2011 um 18:15 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/3 "2011-09-26T18:15:02Z")

</div>

Ja, diese Methode hat keinen Rückgabewert. Actions haben in Shopware nie einen Rückgabewert. Du kannast aber z.B. per “$args-\>getSubject()” auf den Controller zugreifen. Außerdem würde ich hier lieber einen Event verwenden, da das viel sauberer wäre. 🙂 ` $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout\_changeQuantityAction', 'onPostDispatchChangeQuantityAction' ); $this-\>subscribeEvent($event); ... public static function onPostDispatchChangeQuantityAction(Enlight\_Event\_EventArgs $args) { var\_dump($args-\>getSubject()-\>getReuqest()-\>getPost()); die(); }`

---

<div class="post-metadata">

**Author:** ![waldicom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/waldicom/32/12881_2.png) [@waldicom](https://forum.shopware.com/u/waldicom)\
**Post date:** [26. September 2011 um 20:20 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/4 "2011-09-26T20:20:51Z")

</div>

Cool, vielen Dank!! Kurze Frage: das Event „Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout\_changeQuantityAction“ ist nicht in der Liste hier: [http://wiki.shopware.de/Event-Uebersich … 6\_461.html](http://wiki.shopware.de/Event-Uebersicht-3.5.0%5C_detail%5C_596%5C_461.html) Verstehe ich richtig, dass jede Action (in Checkout) ein Event in der Form hat: Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout\_ACTIONNAME ? Oder noch allgemeiner: Enlight\_Controller\_Action\_PostDispatch\_Frontend\_MODUL\_ACTIONNAME

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [27. September 2011 um 09:03 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/5 "2011-09-27T09:03:03Z")

</div>

Ja, genau. Aber die Definition lautet eher: Enlight\_Controller\_Action\_PostDispatch\_MODULE\_CONTROLLER\_ACTIONNAME außerdem gibt es dann noch: Enlight\_Controller\_Action\_PreDispatch\_MODULE\_CONTROLLER\_ACTIONNAME

---

<div class="post-metadata">

**Author:** ![waldicom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/waldicom/32/12881_2.png) [@waldicom](https://forum.shopware.com/u/waldicom)\
**Post date:** [3. Februar 2012 um 00:02 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/6 "2012-02-03T00:02:27Z")

</div>

Kann es sein, dass die o.g. Beispiele nicht funktionieren oder nicht für alles funktionieren? Ich habe versucht nach dem o.g. Schema folgendes Events zu definieren: `$event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout\_finishAction', 'onCheckout\_finishAction' ); $this-\>subscribeEvent($event);` oder auch `$event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout\_finish', 'onCheckout\_finish' ); $this-\>subscribeEvent($event);` oder sogar ` $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout\_Finish', 'onCheckout\_finish' ); $this-\>subscribeEvent($event);` Aber nichts davon wird ausgeführt. Ich habe eine andere Lösung gefunden, das würde mich aber trotzdem interessieren. Vielen Dank!

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [3. Februar 2012 um 13:27 UTC](https://forum.shopware.com/t/hook-funktioniert-nicht-args-gt-getreturn-gibt-null-zuruck/4461/7 "2012-02-03T13:27:13Z")

</div>

Hi, Beispiele dafür findest du hier: [http://wiki.shopware.de/Event-Uebersich … ler-Events](http://wiki.shopware.de/Event-Uebersicht-3.5.0%5C_detail%5C_596%5C_461.html#Beispiele%5C_f.FCr%5C_Controller-Events) Das Event müsste daher eher “Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout” lauten. Ein Aufteilung auf eine bestimmte Action muss man im Pre/Post-Dispatch selber machen. Heiner
