# was steckt in Enlight\_Controller\_ActionEventArgs

**URL:** <https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137>\
**Category:** Programmierung\
**Created:** [17. April 2019 um 17:13 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137 "2019-04-17T17:13:44Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![MrFrox](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrFrox](https://forum.shopware.com/u/MrFrox)\
**Post date:** [17. April 2019 um 17:13 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/1 "2019-04-17T17:13:44Z")

</div>

Hi,

ich versuche auf vermutlich abenteuerliche Weise zu ergründen, wie ich mit dem Event Subscriber arbeiten kann. Ich habe dafür folgendes geschrieben:

```
 'onAddToCart'
        ];
    }

    public function __construct($pluginName, $pluginDirectory)
    {
        $this->pluginDirectory = $pluginDirectory;
    }

    private function debug($txt)
    {
        $fp = fopen('/var/www/dev/shopware/debug.txt', 'w');
        fwrite($fp, $txt);
        fclose($fp);
    }

    public function onAddToCart(\Enlight_Controller_ActionEventArgs $args)
    {
        $this->debug(json_encode($args));
    }
}

```

Ich verstehe nun einfach nicht, was ich mit dem&nbsp;Enlight\_Controller\_ActionEventArgs Objekt in diesem Kontext anfangen kann. Gibt es dafür irgendwo eine Beschreibung? Ich weiß auch nicht, wie ich es anständig debuggen kann. So, wie ich&nbsp; es hier versuche ist der output in meiner Datei:&nbsp;

```
{}

```

Bitte helft mir.

---

<div class="post-metadata">

**Author:** ![kreativrudel](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/kreativrudel/32/14503_2.png) [@kreativrudel](https://forum.shopware.com/u/kreativrudel)\
**Post date:** [17. April 2019 um 20:22 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/2 "2019-04-17T20:22:56Z")

</div>

Hallo MrFrox,

eine Beschreibung zu den Events findest du auf der Shopware Developer:&nbsp;[https://developers.shopware.com/developers-guide/event-list/#enlight\_controller\_action\_predispatch\*](https://developers.shopware.com/developers-guide/event-list/#enlight_controller_action_predispatch*)

Um deinen Schmerz beim Debugging zu lindern&nbsp;habe ich zwei Tipps für dich:

1. Installier dir xdebug. Damit kannst du direkt in den Prozessablauf dich direkt einhängen und siehst in Echtzeit was dein Code macht. Google einfach mal nach xdebug. Du findest dazu zahlreiche Tutorials.
2. Installier dir den Shopware Profiler:&nbsp;[https://github.com/FriendsOfShopware/FroshProfiler](https://github.com/FriendsOfShopware/FroshProfiler)&nbsp;. Damit kannst du dir direkt im Browser alles was du brauchst ausgeben.

&nbsp;

Viele Grüße  
Miron

---

<div class="post-metadata">

**Author:** ![MrFrox](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrFrox](https://forum.shopware.com/u/MrFrox)\
**Post date:** [18. April 2019 um 12:01 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/3 "2019-04-18T12:01:13Z")

</div>

Vielen Dank Miron. Ich habe jetzt den FroshProfiler installiert und das klappt auch ganz gut. Ich kann die dump()-Funktion nutzen und mir die ausgaben über dump-html ansehen.

In meinem Fall (Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout) kann ich jedoch ncht viel mit dem dump anfangen. Es gib keine Informationen in&nbsp;$request = $arguments-\>getRequest(); und auch keine in&nbsp;$response = $arguments-\>getResponse(); Ich versuche gerade den output von&nbsp;$enlightController = $arguments-\>getSubject(); zu verstehen und suche eine Möglichkeit&nbsp;im Prozess des In-den-Warenkorb-Legens den Preis des Artikels zu manipulieren und dachte, es geht darüber, dass ich irgendwo hier Daten anpasse.

---

<div class="post-metadata">

**Author:** ![MrFrox](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrFrox](https://forum.shopware.com/u/MrFrox)\
**Post date:** [18. April 2019 um 12:50 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/4 "2019-04-18T12:50:06Z")

</div>

Ich habe nun einen Preis gefunden in dem ich das ausgebe:

```
public function onAddToCart(\Enlight_Controller_ActionEventArgs $args)
{
   $enlightController = $args->getSubject();
   $smarty = $enlightController->View()->Template()->smarty;
   dump($smarty);
}

```

Die Ausgabe sieht so aus:

![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/5/5e6e5534154594fc1f5e73c537547c642d47a1e2.png)

Index 586 dieses Array sieht so aus:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/6/69ec48350005e703d4669f3e23aad40cd2657613.png)

Wie man sieht, gibt es hier den Preis in Netto und in Brutto. Ich bin nun nicht sicher, was genau es bringt, die Preis an dieser Stelle zu manipulieren und ich weiß auch nicht, wie ich ihn überhaupt manipulieren kann. Für einen Tipp wäre ich sehr dankbar.

---

<div class="post-metadata">

**Author:** ![MrFrox](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrFrox](https://forum.shopware.com/u/MrFrox)\
**Post date:** [19. April 2019 um 10:06 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/5 "2019-04-19T10:06:14Z")

</div>

Ich denke, dass mein erster Ansatz nicht sehr vielversprechend ist, da ich damit, würde ich herausfinden, wie ich es mache, wahrscheinlich nur das Angezeigte verändere. ich denke, die Lösung liegt irgendwo in

```
$basket = Shopware()->Modules()->Basket();

```

Ich vermisse so sehr eine Dokumentation für die Möglichkeiten, des Frameworks. Ich bin eigentlich siet Tagen nur dabei irgendwelche dinge zu erraten 😕 …und ich bin nicht sehr erfolgreich damit :-/

Ich habe auch probiert in der Tabelle&nbsp;s\_order\_basket einfach die Werte zu ändern. Wenn ich dort in der entsprechenden Zeile, die dem aktuellen Artikel im Warenkorb entspricht, price, netprice, articleID oder correncyFactor ändere, hat das absolut keine auswirkungen auf den Warenkorb, der mit im Frontend angezeigt wird. Alles bleibt beim alten, sowohl der Inhalt als auch der Wert&nbsp;des Artikels im Warenkorb. Allerdings wird der Artikel aus dem Warenkorb gelöscht, sobald ich die korrespondierende Zeile aus&nbsp;s\_order\_basket lösche. Das ist sehr seltsames Verhalten, das ich mir nicht erklären kann im Moment.

---

<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. April 2019 um 08:29 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/6 "2019-04-20T08:29:35Z")

</div>

Beim Holen der Daten aus der Datenbank werden die Preise nochmal aktualisiert. Deshalb hat es keine Auswirkung bei dir.

Wenn du den Preis ändern willst, kannst du dich auf&nbsp;Shopware\_Modules\_Basket\_UpdateArticle\_FilterSqlDefault registrieren und die SQL ergänzen. Ich habe das meist so gemacht, dass ich an die SQL einfach noch ein Update dran gehangen habe mit meinem Preis

---

<div class="post-metadata">

**Author:** ![MrFrox](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrFrox](https://forum.shopware.com/u/MrFrox)\
**Post date:** [24. April 2019 um 11:03 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/7 "2019-04-24T11:03:24Z")

</div>

Hallo Shyim,

leider führt das hier bei mir zu einem Error 500:

```
public static function getSubscribedEvents()
{
    return [
        'Shopware_Modules_Basket_UpdateArticle_FilterSqlDefault' => 'onAddToCart'
    ];
}

```

Das Event&nbsp;Shopware\_Modules\_Basket\_UpdateArticle\_FilterSqlDefault scheint es nicht zu geben. Hast du evtl einen Schreibfehler drin?

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [24. April 2019 um 12:19 UTC](https://forum.shopware.com/t/was-steckt-in-enlight-controller-actioneventargs/59137/8 "2019-04-24T12:19:54Z")

</div>

Also das Event gibt es hier:&nbsp;[https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Core/sBasket.php#L1663](https://github.com/shopware/shopware/blob/5.5/engine/Shopware/Core/sBasket.php#L1663)

Das kannst du ja immer im Quelltext nachschauen.
