Hallo
Ich habe hier ein Plugin geschrieben, das soweit auch tut was es soll, allerdings soll es jetzt um eine Funktion erweitert werden, die eine Variable aus der Session ausliest (diese wird von einem anderen Plugin gesetzt).
Also war der Plan, in der „__construct“ Methode den Container zu setzen und dann in weiter unten etwas nach dem Motto $session = $this->container->get('session')
zu machen. Klingt ja erstmal einfach.
Das Problem ist, dass der Container, der mir in der „__construct“ Methode übergeben wird, anscheinend leer ist? Wenn ich versuche, ihn mir ausgeben zu lassen mit file_put_contents('test.txt', json_encode($container);
, steht in der Datei nur „{}“, wenn ich es mit serialize probiere, funktioniert das Backend nicht mehr und es kommt nur eine Fehlermeldung („Ups! Ein Fehler ist aufgetreten!“ - mehr nicht - also unsere selbst angelegte Fehler-Nachricht). Das passiert übrigens auch, wenn ich einfach versuche, trotzdem auf den Container mit $this->container->get('session')
zuzugreifen.
Auch wenn versuche, über die veraltete Methode drauf zuzugreifen mit Shopware()->Container()
, klappt es nicht.
Nachfolgend der Anfang der Subscriber-Unit, im Plugin-Verzeichnis als Subscriber/FrontendRegister.php abgelegt.
<?php
namespace myPlugin\Subscriber;
use Enlight\Event\SubscriberInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class FrontendRegister implements SubscriberInterface{
private $container;
public function __construct(ContainerInterface $container){
$this->container = $container;
file_put_contents("session.txt", json_encode($this->container));
}
...
Evtl. kann mir hier jemand erklären, was genau ich falsche mache, dass ich nicht auf den Container zugreifen kann? Wäre sehr dankbar