Hallo zusammen, mein Plugin hat einen Frontend Controller, der bei Aufruf einen Index aktualisiert. Da ich hier sowohl auf den Subshop als auch auf einige andere Dinge zugreifen muss, kann ich die Funktion nicht einfach in eine eigene Klasse auslagern und sowohl aus einem Cron und dem Controller aufrufen, da dann bei Aufruf über den Cron Dinge wie der Subshop nicht verfügbar sind. Frage: Meine Idee war nun, im Cron einfach über curl den FrontendController nochmal aufzurufen. Jetzt habe ich im Cron aber wohl weder die Shop BaseUri noch sonst irgendetwas, woraus ich mir die URI für den Curl bauen könnte. Kann mir einer einen Tipp geben, ich mein Szenaria am Besten umsetze?
Die Logik solltest du definitiv in eine externe Komponenten auslagern. Dabei kannst du einen Shop als Parameter (oder via setter) übergeben. Im controller ist es relativ simpel mit Shopware()->Shop() und im cronjob musst du den Shop eben erst auslesen. Viele Grüße
Danke für die Antwort. Kannst du mir da noch einen Tipp geben, wie ich an die Daten komme? In der Bootstrap des Plugins habe ich folgendes: $this->subscribeEvent( ‘Shopware_CronJob_MyCron’, ‘runMyCron’ ); und selbst dort in der “runMyCron()” Funktion, wird mir schon nichts für Shopware() oder Shopware->Config() ausgegeben oder irgendwelche Dinge mit denen ich etwas Anfangen, oder die ich an meine Klasse/Funktion übergeben könnte.
Does anyone know why i can not access Shopware()->Config()->BasePath in my runMyCron function?
Die Konfiguration ist Shop abhängig und daher nicht im cronjob nutzbar. Die standard singleton Instanz sollte aber über Shopware() verfügbar sein. Du kannst so zb über Shopware()->Db() einen Shop auslesen und an deine Komponente übergeben. Viele Grüße