Hallo, ich hatte bei einem eigenem Plugin den Code $_Request[‚meineVriable‘]. Dies wurde vom System (Türsteher beim Plugin einstellen) bemängelt und vorgeschlagen $this->Request()->meineVariable zu verwenden. Dies habe ich so gemacht. Leider erscheint nun im Frontend der Fehler: Using $this when not in object context Die Funktion ist statisch: static function onBasket\_UpdateArticle\_After (Enlight\_Hook\_HookArgs $args) { .... }
Wie löse ich am besten das Problem? Danke
in SW4 müssen deine hook/event-methoden zum glück nicht mehr als statisch deklariert werden. leider gibt es $this->Request() bei den hooks nicht. @SW: warum eigentlich nicht??? da musst du tricksen… ich habe bei der gelegenheit mal ein jira ticket angelegt, daß $this->Request() auch der bootstrap des plugins zur verfügung steht.
Was meinst du genau mit Tricksen? Ich habe jetzt schon vorübergehen beim Kunden mit $_GET gearbeitet. Das geht natrülich aber ist sehr unschön.
du hast eine PM.
Hallo, ich scheitere leider daran, meine _POST und _GET Variablen global in der Bootstrap zur Verfügung zu haben. Folgender Versuch habe ich: protected static $request; ... ... $events= $this-\>createEvent( 'Enlight\_Controller\_Action\_PreDispatch', 'storeRequest', 0 ); $this-\>subscribeEvent($event); ... ... public static function storeRequest(Enlight\_Event\_EventArgs $args) { self::$request = $args-\>getSubject(); }
Theoretisch wären meine Werte nun unter self::$request->sSYSTEM->_POST verfügbar. Aber ich bekomme die Meldung: Property “sSYSTEM” not found Ich stehe auf dem Schlauch und finde meinen Fehler nicht. Hat mir bitte jemand einen Tipp? Danke
nein, nicht über request->sSYSTEM->_POST sondern per self::request-\>getParam('....'); /\* Retrieves a parameter from the instance. Priority is in the order of \* userland parameters (see {@link setParam()}), _GET, $_POST. If a * parameter matching the $key is not found, null is returned. */ bzw. self::$request->getPost(); // liefert alle POST variablen
Danke, jetzt geht es