ich stehe gerade ein wenig auf dem Schlauch.
Bisher hole ich mir für den Configreader im neuen Pluginsystem die ShopId so (in der PluginName.php).
$this->container->get('Shop')
Beim Rumtesten für eine neues kleines Bastelprojekt bekomme ich nun aber *nichts* zurückgegeben, kann also keine Plugin-Config auslesen, wenn ich den Scope benötige.
In einem anderen Plugin im „echten“ Shop geht das so aber nach wie vor noch.
Auch wenn ich es so wie in der Doku Plugin configuration mache, bekomme ich keinen Wert.
Weiter war mich auch erst später aufgefallen, dass nach dem Update auf 5.5.4 ein Cron nicht mehr lief, weil der auch kein „Shop“ mehr zur Verfügung steht.
Wie komme ich für den Configreader denn nun an den „Shop“?
private function getConfiguration() {
/** return Plugin-Configuration from current shop */
return $this->container->get('shopware.plugin.cached_config_reader')->getByPluginName($this->getName(), $this->container->get('Shop'));
}
Hat sich da bei 5.5 was geändert? Gibts da einen Bug?
Nee, Cron war nur beiläufig - da habe ich den „shop“ rausgenommen - macht beim Cron ja auch keinen Sinn.
Hier geht es z.B. um einen Aufruf aus Enlight_Controller_Action_PreDispatch_Frontend_Checkout und Enlight_Controller_Action_PostDispatch_Frontend_Detail
Ein die($this->container->get(‚Shop‘)); im Event liefert auch einfach *nichts*
Aber auch ohne Shop-Scope liefert mir der Configreader gerade keine Plugin-Config.
Keine Ahnung, was da grad krumm läuft
Direkt in der „Bootstrap“.php, ganz ohne Subscriber & XML.
Den „Teil“ nehme ich mir mit Copy & Paste eigentlich immer aus einem meiner anderen Plugins raus.
die(var_dump($this->container)) gibt ja auch Inhalte aus. Auch die(var_dump($this->container->get(‚Shop‘))); gibt einen Dump - also ist der „Shop“ doch da, dann hat der Configreader wohl nen Schuss
Kann geschlossen werden… Depp vor Computer.
Im onPostDispatchDetail hat sich heimlich ein $ direkt vor einen Kommentar geschummelt - darum wurde dann die Var *falsch* zugewiesen.
*Rot werd* und ein schönes WE
$/** get Plugin-Configuration */
$pluginConfig = $this->getPluginConfiguration();
die(var_dump($pluginConfig));