# Variable an eigene Funktion übergeben

**URL:** <https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658>\
**Category:** Plugins\
**Tags:** drittanbieter-plugin\
**Created:** [3. Juli 2017 um 09:21 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658 "2017-07-03T09:21:17Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [3. Juli 2017 um 09:21 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/1 "2017-07-03T09:21:17Z")

</div>

Hallo!

Ich probiere jetzt seit Stunden, irgendwie will es nicht klappen, dabei ist es eigentlich ganz simpel.

Folgendes: Ich habe ein Plugin mit der Funktion onPostDispatchCheckout:

```
 $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatch_Frontend_Checkout',
            'onPostDispatchCheckout'
        );

```

Dazu:

```
public function onPostDispatchCheckout(Enlight_Event_EventArgs $arguments)
    {
        /**@var $controller Shopware_Controllers_Frontend_Index*/
        $controller = $arguments->getSubject();
        $view = $controller->View();

        
....
$variable = 1;

return $variable;
		
    }

```

$variable = 1 möchte ich nun an meine eigene Funktion übergeben, das klappt aber überhaupt nicht.

```
public function getMEINEFUNKTION()
		{
		test = $this->onPostDispatchCheckout();
oder
$test = Shopware()->Plugins()->Frontend()->MeinPlugin()->onPostDispatchCheckout();
		}

```

&nbsp;

Leider auch nirgends etwas zu finden wie man das bei Shopware macht.

Kann mir hier jemand helfen an diese Variable zukommen?

Besten Dank schon mal!

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [3. Juli 2017 um 12:42 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/2 "2017-07-03T12:42:01Z")

</div>

Geht das nicht? Shopware???

---

<div class="post-metadata">

**Author:** ![IFF](https://avatars.discourse-cdn.com/v4/letter/i/c37758/32.png) [@IFF](https://forum.shopware.com/u/IFF)\
**Post date:** [4. Juli 2017 um 09:46 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/3 "2017-07-04T09:46:16Z")

</div>

Eventuell so:

```
class ... {

 protected $variable;

 public function onPostDispatchCheckout(Enlight_Event_EventArgs $arguments) {
  $this->variable = 1;
 }

 public function getMEINEFUNKTION() {
  $test = $this->variable;
 }

}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [4. Juli 2017 um 11:31 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/4 "2017-07-04T11:31:35Z")

</div>

Nicht ganz leider.

Wenn

```
$this->variable = abc; 

```

ist dann liefert mir

```
$test = $this->variable;

```

$test = abc, var\_dump($test) allerdings NULL Sring(3) „abc“

Keine Ahnung wo der erste Aufruf herkommt. $test exisitiert ja nur in der eigenen Funktion. Dass der erste Wert aber NULL ist, bringt alles zum crashen.

&nbsp;

---

<div class="post-metadata">

**Author:** ![IFF](https://avatars.discourse-cdn.com/v4/letter/i/c37758/32.png) [@IFF](https://forum.shopware.com/u/IFF)\
**Post date:** [4. Juli 2017 um 11:38 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/5 "2017-07-04T11:38:15Z")

</div>

> bringt alles zum crashen

Das wird wohl nicht im Zusammenhang mit der Variable stehen. Ich vermute eher im Aufbau von deinem Plugin, was aus dem obigen Beispiel aber nicht ersichtlich ist. Woher deine Funktion getMEINEFUNKTION() kommt und wann bzw. wo sie aufgerufen wird ist völlig unklar.

---

<div class="post-metadata">

**Author:** ![IFF](https://avatars.discourse-cdn.com/v4/letter/i/c37758/32.png) [@IFF](https://forum.shopware.com/u/IFF)\
**Post date:** [4. Juli 2017 um 11:56 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/6 "2017-07-04T11:56:17Z")

</div>

Weil heute die Sonne scheint:

Dieses Beispiel macht keinen Sinn, soll aber die Übergabe von Variablen zeigen.

```
 true,
      'enable' => true,
      'update' => true
    );
  }

  public function getInfo() {
    return array(
      'version' => $this->getVersion(),
      'label' => $this->getLabel(),
    );
  }

  public function update($version) {
    return ['success' => true, 'invalidateCache' => ['template', 'theme']];
  }

  public function install() {
    $this->registerEvents();
    return ['success' => true, 'invalidateCache' => ['template', 'theme']];
  }

  public function uninstall() {
    return ['success' => true, 'invalidateCache' => ['template', 'theme']];
  }

  private function registerEvents() {
    $this->subscribeEvent('Enlight_Controller_Action_PreDispatch_Frontend_Checkout', 'onPreDispatchCheckout' );
    return true;
  }

  // Aufruf im Checkout
  public function onPreDispatchCheckout(Enlight_Event_EventArgs $arguments) {
    $this->variable = 'abc';
    $this->getMEINEFUNKTION();
  }

  public function getMEINEFUNKTION() {
    $test = $this->variable;
    var_dump( $test );
 }
 

}

?>

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [4. Juli 2017 um 12:18 UTC](https://forum.shopware.com/t/variable-an-eigene-funktion-ubergeben/46658/7 "2017-07-04T12:18:47Z")

</div>

Hallo, danke. So gibt es eine Fehlermeldung, dass $variable nicht bekannt ist.

Es müsste also lauten:

```
protected $variable; 

 // Aufruf im Checkout
  public function onPreDispatchCheckout(Enlight_Event_EventArgs $arguments) {
    $this->variable = 'abc';
    $this->getMEINEFUNKTION();
  }

  public function getMEINEFUNKTION() {
    $test = $this->variable;
    var_dump( $test );
 }
 

}

```

Das ganze ergibt im var\_dump dann NULL string(3) „abc“ string(3) „abc“ string(3) „abc“

Keine Ahnung woher er sich das NULL nimmt, ich denke von der protected $variable; in der Klasse. Ohne gehts aber auch wieder nicht.
