# Eigene Helferklasse einbinden

**URL:** https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232
**Category:** Programmierung
**Created:** [9. November 2016 um 15:46 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232 "2016-11-09T15:46:20Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [9. November 2016 um 15:46 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/1 "2016-11-09T15:46:20Z")

</div>

Ja das mit dem OOP ist manchmal so eine Sache 🙂

Ich habe 2 Controller eingebunden und möchte bestimmte Funktionen in eine Helferklasse auslagern, damit ich von der Bootstrap und den jeweiligen Controllern zugreifen kann.

Diese habe ich in /Components abgelegt und den Namespace im Bootstrap registriert mit

```
$this->Application()->Loader()->registerNamespace(
            'Shopware\Plugins\MDPlugin',
            $this->Path() . 'Components/'
        );

```

&nbsp;

Die Helferklasse sieht als Beispiel vereinfacht wiefolgt aus

```
namespace Shopware\Plugins\MDPlugin\Components;

class MeinPluginExt
{

    public function meineMethode()
    {
        ...............

        
    }
}

```

Wie ruf ich diese Methoden im Controller auf bzw. was habe ich noch vergessen ?

---

<div class="post-metadata">

### Author: ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)
#### Post date: [9. November 2016 um 15:56 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/2 "2016-11-09T15:56:42Z")

</div>

Hallo,

löchen Sie Components von Ihre registerNamespace funktion

```
        $this->Application()->Loader()->registerNamespace(
            'Shopware\Plugins\MDPlugin',
            $this->Path()
        );

```

Viele Grüße,

Ahmad

&nbsp;

**Edit:**

ich habe mir nochmal gedacht und ich galube das Problem in Ihrem Code ist&nbsp;Shopware\Plugins weil&nbsp;Shopware\Plugins namespaces ist regiestert mit Plugins Ordener.

also probiern mal löchen diese Plugin von Ihrem Namespace.

```
$this->Application()->Loader()->registerNamespace(
            'Shopware\MDPlugin',
            $this->Path()
        );

```

&nbsp;

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [9. November 2016 um 19:45 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/3 "2016-11-09T19:45:49Z")

</div>

&nbsp;&nbsp;

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [9. November 2016 um 20:01 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/4 "2016-11-09T20:01:14Z")

</div>

&nbsp; Danke

---

<div class="post-metadata">

### Author: ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)
#### Post date: [9. November 2016 um 20:02 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/5 "2016-11-09T20:02:09Z")

</div>

> [@megadruck schrieb:](https://forum.shopware.com/profile/23722/megadruck "megadruck")
> 
> Aufruf im Controller dann über
> 
> $this-\> **thumb** =Shopware\Plugins\MDPlugin\Components\PluginExt::_getthumb_($file);
> 
> &nbsp;
> 
> ?

genau aber ohne&nbsp;Plugins

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [10. November 2016 um 13:10 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/6 "2016-11-10T13:10:14Z")

</div>

thanks

Wie kann ich in der Helferklasse auf

```
 Shopware()-\>Request()-\>getParam(**"xy");**

```

**Habe keinen Zugriff drauf**

&nbsp;

```
class Helper extends Zend_Controller_Request_Http
{
$data=$this->get("demo");
}

```

?

---

<div class="post-metadata">

### Author: ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)
#### Post date: [10. November 2016 um 13:51 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/7 "2016-11-10T13:51:32Z")

</div>

> [@megadruck schrieb:](https://forum.shopware.com/profile/23722/megadruck "megadruck")
> 
> thanks
> 
> Wie kann ich in der Helferklasse auf
> 
> Shopware()-\>Request()-\>getParam(**„xy“);**
> 
> **Habe keinen Zugriff drauf**
> 
> &nbsp;
> 
> class Helper extends Zend\_Controller\_Request\_Http  
> {  
> $data=$this-\>get(„demo“);  
> }
> 
> ?

&nbsp;Sie können&nbsp;Request() schicken von Ihre Controller zu Ihre HelferKlasse via \_\_construct funktion in Ihre&nbsp;HelferKlasse

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [11. November 2016 um 09:41 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/8 "2016-11-11T09:41:00Z")

</div>

Ich habe einen anderen Weg gefunden wie es funktioniert.

Ich benenn die Class in mmeinem Fall zb

```
 class Shopware\_Plugins\_Frontend\_MDUpload\_Components\_UploadHelper

```

&nbsp;

&nbsp;

Dann brauche ich diese nur aufzurufen mit

$helper = new Shopware\_Plugins\_Frontend\_MDUpload\_Components\_UploadHelper;

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [11. November 2016 um 09:44 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/9 "2016-11-11T09:44:49Z")

</div>

EIne letzte Frage habe ich zu " The provided X-CSRF-Token is invalid "

&nbsp;

```
    public function preDispatch()
    {

        if( in_array($this->Request()->getActionName(),
            array( "getConfig","doDelete","doInsert" )) )
        {
            Shopware()->Plugins()->Controller()->ViewRenderer()->setNoRender();
        }

        $this->admin = Shopware()->Modules()->Admin();
        Shopware()->Session()->mdID = ($this->Request()->get("id"))? (int)$this->Request()->get("id"):Shopware()->Session()->get("mdID");

        if (!$this->admin->sCheckUser()) {
          return $this->redirect(
              array(
                  'controller' => 'account',
                  'action' => 'index',
                  'sTarget' => 'transfer',
                  'sTargetAction' => 'index'
                  )
          );
        }
    }

```

&nbsp;

Der Kunde ruft auf

/transfer/index/id/123456/

und springt zum Login, wenn dieser nicht eingeloggt ist. Danach geht es weiter zu

/transfer/index/

Die id habe ich vorher in eine Session gespeichert und rufe diese ab.

&nbsp;

Problem: Wenn die Session abläuft gibt es ein redirect zu, /account/ und nach dem Login

kommt die meldung " The provided X-CSRF-Token is invalid. Please go back, reload the page and try again "

&nbsp;

Wie kann ich das vermeiden ?

&nbsp;

---

<div class="post-metadata">

### Author: ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)
#### Post date: [11. November 2016 um 09:52 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/10 "2016-11-11T09:52:17Z")

</div>

Hallo,

Sie können Ihre controller zu whitelist hinzufügen

[https://developers.shopware.com/developers-guide/csrf-protection/#whitelist-particular-actions](https://developers.shopware.com/developers-guide/csrf-protection/#whitelist-particular-actions)

oder probieren mit&nbsp;

[https://developers.shopware.com/developers-guide/csrf-protection/#frontend](https://developers.shopware.com/developers-guide/csrf-protection/#frontend)

Viele Grüße,

Ahmad.

---

<div class="post-metadata">

### Author: ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)
#### Post date: [12. November 2016 um 10:15 UTC](https://forum.shopware.com/t/eigene-helferklasse-einbinden/41232/11 "2016-11-12T10:15:36Z")

</div>

Soweit klappt jetzt alles. Danke für die Hilfe
