# SW5 und Cache bei Plugin unterbinden?

**URL:** <https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849>\
**Category:** Programmierung\
**Created:** [15. September 2016 um 12:23 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849 "2016-09-15T12:23:18Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [15. September 2016 um 12:23 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/1 "2016-09-15T12:23:18Z")

</div>

1. Versuch um eine Lösung zu finden:

Für ein TagCloud-Plugin soll das jeweilige Plugin (bzw. bei Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Index) vom HTTPCache ausgeschlossen werden. Bisherige Versuche enden mit einem 503-Error im Shop. Bei einem SW 5.1. konnte ich dies ohne Probleme mit einem disableControllerCache() realisieren. Bei SW 5.2.6 kommt es zur besagten Fehlermedlung. Welche Lösung, welchen Weg, gibt es bei 5.2 ???

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [15. September 2016 um 15:31 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/2 "2016-09-15T15:31:02Z")

</div>

Hi,

was ist denn die Fehlermeldung? Gibt es was in den Logs? Kannst du vll. temporär die Fehlerausgabe aktivieren ([Debugging Shopware](https://developers.shopware.com/developers-guide/debugging/#default-log-output)). Ansonsten könnte man auch den no-cache-header direkt setzen:&nbsp;

```
 $this-\>Response()-\>setHeader('Cache-Control', 'private', true); 

```

Besten Gruß,

Daniel

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [16. September 2016 um 08:40 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/3 "2016-09-16T08:40:08Z")

</div>

Zunächst erst mal Danke für die Antwort!

Zur Fehlermeldung und meiner Vorgehensweise:

Mein Versuch in der Bootstrap:

```
$httpCache = Shopware()->Plugins()->Core()->HttpCache();
$httpCache->disableControllerCache();

```

Im Produktivmodus geht das komischerweise wunderbar. Setze ich den Shop jedoch in Bearbeitungsmodus, dann kommt nur noch eine weiße Seite mit:

```
Fatal error: Call to a member function setHeader() on null in /var/.../engine/Shopware/Plugins/Default/Core/HttpCache/Bootstrap.php on line 1050
503 Service Unavailable

```

HttpCache ist hier auf aktiv geschaltet, so wie es sein sollte.

Mit der Zeile $this-\>Response()-\>setHeader(‘Cache-Control’, ‘private’, true); erhalte ich im Produktivmodus diesen Fehler:

```
Method "Shopware_Plugins_Frontend_xxxTagCloud_Bootstrap::Response" not found failure in 
engine/Shopware/Plugins/Community/Frontend/xxxTagCloud/Bootstrap.php on line 336

```

Im Log-Verzeichnis steht nur die letzte Fehlermeldung.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [16. September 2016 um 08:43 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/4 "2016-09-16T08:43:34Z")

</div>

Nachtrag: Oder kann ich in der Bootstrap irgendwie abfragen, ob HttpCache() aktiv ist? Oder Abfragen ob Bearbeitungsmodus oder Produktivmodus? Damit könnte man dies sauber umgehen.

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [16. September 2016 um 16:02 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/5 "2016-09-16T16:02:36Z")

</div>

Hi,

es gibt doch in der Bootstrap.php &nbsp;jedes Plugins die Methode&nbsp;\Shopware\_Components\_Plugin\_Bootstrap::disableControllerCache - die prüft eigentlich, ob der Cache da ist oder nicht? Ansonsten kann man das wie folgt prüfen:

```
        $httpCache = Shopware()->Plugins()->Core()->HttpCache();

        if (!$httpCache instanceof Shopware_Components_Plugin_Bootstrap) {
            return null;
        }

        /**@var $plugin Plugin */
        $plugin = Shopware()->Models()->find(Plugin::class, $httpCache->getId());

        if (!$plugin->getActive() || !$plugin->getInstalled()) {
            return null;
        }

```

So wird es zumindest im Core gemacht.

Daniel

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. September 2016 um 07:03 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/6 "2016-09-19T07:03:51Z")

</div>

Danke für den Hinweis. Ich werde das mal probieren.

---

<div class="post-metadata">

**Author:** ![Synonymous](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@Synonymous](https://forum.shopware.com/u/Synonymous)\
**Post date:** [19. September 2016 um 07:10 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/7 "2016-09-19T07:10:36Z")

</div>

Hatte ein ähnliches Problem. Hier die Lösung:  
[https://synonymous.rocks/http-cache-in-shopware-mittels-plugin-deaktivieren/](https://synonymous.rocks/http-cache-in-shopware-mittels-plugin-deaktivieren/)

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. September 2016 um 07:33 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/8 "2016-09-19T07:33:02Z")

</div>

```
$plugin->getActive()

```

Diese Abftrage brachte mich zum Ziel 🙂

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. September 2016 um 07:34 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/9 "2016-09-19T07:34:42Z")

</div>

> [@Synonymous schrieb:](https://forum.shopware.com/profile/24210/Synonymous "Synonymous")
> 
> Hatte ein ähnliches Problem. Hier die Lösung:  
> [https://synonymous.rocks/http-cache-in-shopware-mittels-plugin-deaktivieren/](https://synonymous.rocks/http-cache-in-shopware-mittels-plugin-deaktivieren/)

Meine Ansätze sahen auch so aus, aber beim Wechsel von Produktivmodes/Bearbeitungsmodus geht der Shop nicht mehr.&nbsp;

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. September 2016 um 07:37 UTC](https://forum.shopware.com/t/sw5-und-cache-bei-plugin-unterbinden/39849/10 "2016-09-19T07:37:58Z")

</div>

Genau das was ich mir vorgestellt habe:  
&nbsp;

```
    $httpCache = Shopware()->Plugins()->Core()->HttpCache();
    $plugin = Shopware()->Models()->find('\Shopware\Models\Plugin\Plugin', $httpCache->getId());
    if ( $plugin->getActive() ) {
      $httpCache->disableControllerCache();
    }

```

Dann gibt es auch keine Probleme beim Wechsel von Protuktivmodus in Bearbeitungsmodus. Getestet in SW 5.2.6
