Dekorieren eines Service abhängig davon, wo aufgerufen wird

Hallo zusammen das dekorieren eines Services z.B. “list_product_service” funktioniert soweit ja super. nun habe ich aber das Problem, dass ich diese Daten nicht immer benötige z.B: beim Aufruf des Ajax-Warenkorbes. Hier wird aber nunmal auch der list_product_service aufgerufen. Gibt es eine Möglichkeit an der Stelle wo man dekoriert auf den Controller-/Actionnamen zuzugreifen, welcher den Service ausgelöst hat? public function decorateListProductService() { //Hier wäre eine if-Bedinung super $coreService = $this-\>get('shopware\_storefront.list\_product\_service'); $bundleService = $this-\>get('pluginname.bundle\_service'); $newService = new ListProductService($coreService, $bundleService); Shopware()-\>Container()-\>set('shopware\_storefront.list\_product\_service', $newService); }

Nein, die services sind unabhängig vom Kontext. Warum willst / brauchst du das denn?! Viele Grüße

ich würde es gern für folgenden Hintergrund nutzen bei der WK-Ansicht (normal, ajax) wird ja auch der Produkt-Listing-Service genutzt. Dort benötige ich aber die ganzen zusätzlichen Daten nicht die ich z.B. in der Listview auch mit ausgebe. Und somit würde ich halt an der Stelle einfach ganz gern auf die DB-Queries verzichten Schade das man dort nicht auf diese „globals“ zugreifen kann

[quote=“agenturtriebwerk”]ganz gern auf die DB-Queries verzichten[/quote] Warum “die queries”?! Im Normalfall ist es genau -ein- query. Viele Grüße

Hi, da gibt es eine Möglichkeit ja. Es gibt ja eine Stelle an dem du deinen Services in den DI-Container rein setzt um den originalen zu ersetzen… Diese Stelle müsstest du so umschreiben, dass Sie nur in den entsprechenden Controller aufrufen greift. Hoffe das hilft dir weiter. Gruß Oliver

@Oliver Skroblin schrieb:

…Diese Stelle müsstest du so umschreiben, dass Sie nur in den entsprechenden Controller aufrufen greift.

 

Hallo, wäre es möglich ein kurzes knappes Beispiel zu kriegen? Stehe vor ziemlich genau dem gleichen Problem :slight_smile:

 

Gruß