# Replace-Hook funktioniert nicht

**URL:** <https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955>\
**Category:** Programmierung\
**Created:** [31. August 2017 um 10:04 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955 "2017-08-31T10:04:06Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [31. August 2017 um 10:04 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/1 "2017-08-31T10:04:06Z")

</div>

Hallo,

ich möchte die Methode Checkout.finishAction() mit meiner eigenen erstzen, dafür habe ich in meinem Plugin:

&nbsp;

```
public static function getSubscribedEvents()
    {
        return [
              'Shopware_Controllers_Frontend_Checkout::finishAction::replace' => 'insteadFinishAction'
        ];
}

```

Laut 5.2.3 des Shopware-Buches „Diese Events [Hooks] stehen in Shopware nur für bestimmte Klassen zur Verfügung, insbesondere für die Core-Klassen, Doctrine-Repositorys und Controller.“. Soweit ich verstehe, geht es hier um eine Controller-Klasse.

Trotzdem funktioniert das nicht. Ich weiß das, weil ich mit xdebugger debugge und anstatt meiner Methode zu Chckout.finishAction() komme.

Verstehe ich etwas falsch?

```
 &nbsp;

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [1. September 2017 um 08:20 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/2 "2017-09-01T08:20:48Z")

</div>

Ich muss auch sagen, dass ich zunächste ::before-Hook probiert habe und dieses Versuch hat auch gescheitert.

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [1. September 2017 um 08:38 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/3 "2017-09-01T08:38:38Z")

</div>

Hallo @rreimche‍

was genau möchtest du denn erreichen? Ein Replace-Hook sollte immer das allerletze Mittel sein, wenn es wirklich gar nicht anders geht. Ich behaupte, dass man in 95% der Fälle keinen Replace-Hook braucht&nbsp; ![Wink](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wink.png "Wink")&nbsp;Man muss sich klar machen, dass man die komplette Shopware Logik dadurch aushebelt, man muss sicherstellen, dass man exakt die gleichen Template Variablen übergibt, die gleiche Logik ausführt&nbsp;etc pp.&nbsp;

Grundsätzlich sollten Controller mit PostDispatch oder PreDispatch Events erweitert werden. Siehe auch&nbsp;[Shopware events](https://developers.shopware.com/developers-guide/event-guide/#postdispatch)

Viele Grüße aus Schöppingen

![cool](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [1. September 2017 um 08:55 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/4 "2017-09-01T08:55:54Z")

</div>

Naja, wenn die Core-Klassen aber hardcoded minimalistisch sind - bleibt einen ja nichts Anderes übrig, als ganze Funktionen zu überschreiben.  
Stehe nämlich auch grad vor dem Problem, eine "_fest-codierte-Unzulänglichkeit"_ zu ersetzen:  
[shopware/sBasket.php at 5.3 · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Core/sBasket.php#L2530-L2532)  
In der Funktion kann man sich ja nicht einmal irgendwo „rein-Hooken“.  
Da hilft mir kein dispatchen der Welt mehr weiter&nbsp; ![Wearing-Sunglasses](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wearing-sunglasses.png "Wearing-Sunglasses")

---

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [1. September 2017 um 09:10 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/5 "2017-09-01T09:10:58Z")

</div>

@Michael Telgmann, genauer ist meine Aufgabe hier beschrieben:&nbsp;[https://forum.shopware.com/discussion/48717/bearbeitung-der-bestellung-gerade-nach-dem-drucken-von-jetzt-kaufen#latest](https://forum.shopware.com/discussion/48717/bearbeitung-der-bestellung-gerade-nach-dem-drucken-von-jetzt-kaufen#latest)

Es geht darum, das Verhalten von Checkout.finishAction() zu ändern sowie Checkout/finish.tpl. In finishAction() habe ich keine Ereignisse gefunden, deshalbe wollte ich Hooks verwenden. Von der Nachteilen der replace-Hooks habe ich in Shopware-Buch gelesen, aber ich sehe hier keinen anderen Weg.

Danke dir für den Hint, dass „Grundsätzlich sollten Controller mit PostDispatch oder PreDispatch Events erweitert werden“. Ich lese jetzt den Artikel und dann vllt. sehe ich die Lösung. Oder nicht 🙂

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [1. September 2017 um 12:28 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/6 "2017-09-01T12:28:38Z")

</div>

Hi,

@sonic‍ ich sagte ja auch in den allermeisten Fällen&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")&nbsp;und unsere allseits geliebten Core-Klassen sind ja noch mal was anderes…

@rreimche‍ ich werde dir im anderen Thread antworten.

Viele Grüße aus Schöppingen

![cool](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [1. September 2017 um 12:35 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/7 "2017-09-01T12:35:56Z")

</div>

@Michael_Telgmann, danke dir sehr, aber könntest du auch hier antworten, wenn du die Antwort weiß, warum bei mir Hooking dieser Methode nicht funktionieren?

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [1. September 2017 um 12:41 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/8 "2017-09-01T12:41:02Z")

</div>

Hi,&nbsp;

für die Hooks werden Proxy Klassen benutzt, die einmal initial aufgebaut werden und dann sozusagen im Cache liegen. Evtl musst du hier einmal den kompletten Shopware Cache löschen oder von Hand den “production\_123456789” Order unter var/cache löschen. Danach noch mal probieren.

Viele Grüße aus Schöppingen

![cool](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![chaul](https://avatars.discourse-cdn.com/v4/letter/c/ed8c4c/32.png) [@chaul](https://forum.shopware.com/u/chaul)\
**Post date:** [11. November 2018 um 08:25 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/9 "2018-11-11T08:25:50Z")

</div>

Hi @michael&nbsp;

I know hook is the last resort and the same funcation can not be hooked more than two times. However, I am still not successful to write a hook and test the same. So, I want to know a working example of Hook which i can test. Can you please help me.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [12. November 2018 um 08:44 UTC](https://forum.shopware.com/t/replace-hook-funktioniert-nicht/47955/10 "2018-11-12T08:44:21Z")

</div>

Hi chaul,

please have a look at our dev docs:&nbsp;[Shopware events](https://developers.shopware.com/developers-guide/event-guide/#hooks)  
btw a method can of course be hooked multiple times&nbsp; ![Wink](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wink.png "Wink")

Best regards from Schöppingen

![cool](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "cool")&nbsp;Michael Telgmann
