# \[GELÖST\] Subscriber: Variable in mehreren Events nutzen

**URL:** https://forum.shopware.com/t/gelost-subscriber-variable-in-mehreren-events-nutzen/47899
**Category:** Programmierung
**Created:** [29. August 2017 um 11:00 UTC](https://forum.shopware.com/t/gelost-subscriber-variable-in-mehreren-events-nutzen/47899 "2017-08-29T11:00:59Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![suud](https://avatars.discourse-cdn.com/v4/letter/s/6a8cbe/32.png) [@suud](https://forum.shopware.com/u/suud)
#### Post date: [29. August 2017 um 11:00 UTC](https://forum.shopware.com/t/gelost-subscriber-variable-in-mehreren-events-nutzen/47899/1 "2017-08-29T11:00:59Z")

</div>

Hallo zusammen,

&nbsp;

ich habe einen Subscriber, über den ich mich auf 2 Events registriere.

Durch **onCheckoutPostDispatch** lese ich Daten aus einem Formular (Post-Request) aus, welches bei der Bestätigung der Bestellung übergeben wird. Aktuell speichere ich die relevanten Daten in der Klassenvariable $this-\>mail.

In **onBeforeSendOrderConfirmationMail** (welche im Bestellprozess kurz später aufgerufen wird) möchte ich diese Daten nun weiterverarbeiten. Leider ist an dieser Stelle $this-\>mail nie ein Wert zugewiesen. Ich vermute, dass hier bereits auf einer neuen Objektinstanz gearbeitet wird.

&nbsp;

```
class Frontend implements SubscriberInterface
{
    private $mail;

    public static function getSubscribedEvents()
    {
        return array(
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Checkout' => 'onCheckoutPostDispatch',
            'Shopware_Modules_Order_SendMail_Filter' => 'onBeforeSendOrderConfirmationMail'
        );
    }

    public function onCheckoutPostDispatch(\Enlight_Event_EventArgs $args)
    {
        /** @var \Shopware_Controllers_Frontend_Checkout $subject */
        $subject = $args->getSubject();
        $request = $subject->Request();

        if ($request->getActionName() !== 'finish') {
            return;
        }

        $postData = $request->getPost();
        $this->mail = $postData['additionalMail'];
    }

    public function onBeforeSendOrderConfirmationMail(\Enlight_Event_EventArgs $args)
    {
        $mail = $args->getReturn();
        // hier ist $this->mail nie ein Wert zugewiesen!
        if (isset($this->mail)) {
            $mail->addTo($this->mail);
        }
        return $mail;
    }
}

```

&nbsp;

**Meine Fragen:**

1. Was ist der sauberste Weg, eine Variable über mehrerer Events hinweg verfügbar zu machen?

2. Wie kann ich als Entwickler am besten herausfinden, wann Instanzen bestimmter Klassen erzeugt werden und wie lange diese „leben“?

---

<div class="post-metadata">

### Author: ![suud](https://avatars.discourse-cdn.com/v4/letter/s/6a8cbe/32.png) [@suud](https://forum.shopware.com/u/suud)
#### Post date: [29. August 2017 um 16:16 UTC](https://forum.shopware.com/t/gelost-subscriber-variable-in-mehreren-events-nutzen/47899/2 "2017-08-29T16:16:57Z")

</div>

Beim Debuggen habe ich festgestellt, dass _Shopware\_Modules\_Order\_SendMail\_Filter_ vor&nbsp;_Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_Checkout_ aufgerufen wird.

Ich habe nun _Enlight\_Controller\_Action\_ **PostDispatchSecure** \_Frontend\_Checkout_ durch _Enlight\_Controller\_Action\_ **PreDispatch** \_Frontend\_Checkout_ ersetzt. Jetzt funktioniert alles.

&nbsp;

> [@suud schrieb:](https://forum.shopware.com/profile/27133/suud "suud")
> 
> **Meine Fragen:**
> 
> 1. Was ist der sauberste Weg, eine Variable über mehrerer Events hinweg verfügbar zu machen?
> 
> 2. Wie kann ich als Entwickler am besten herausfinden, wann Instanzen bestimmter Klassen erzeugt werden und wie lange diese „leben“?

**Meine Antworten:**

1. Mit Klassenvariablen, wenn möglich.

2. Durch Debugging.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

Falls dir das weitergeholfen hat, würde ich mich über ein Danke freuen!

---

<div class="post-metadata">

### Author: ![Sgoftware](https://avatars.discourse-cdn.com/v4/letter/s/4491bb/32.png) [@Sgoftware](https://forum.shopware.com/u/Sgoftware)
#### Post date: [17. November 2019 um 12:58 UTC](https://forum.shopware.com/t/gelost-subscriber-variable-in-mehreren-events-nutzen/47899/3 "2019-11-17T12:58:41Z")

</div>

Danke 🙂
