Hallo zusammen! Ich versuche ein einfaches Backend-Plugin zu schreiben, welches beim Ausführen einer Cacheroutine einen Logeintrag in eine einfache Textdatei schreibt. Folgendes habe ich: public function install() { $event = $this-\>createHook( 'Shopware\_Controllers\_Backend\_Cache', 'clearTemplateCache', 'myclearTemplateCache', Enlight\_Hook\_HookHandler::TypeAfter, 0 ); $this-\>subscribeHook($event); $this-\>logit("Plugin wurde installiert."); return true; }
static function myclearTemplateCache(Enlight\_Hook\_HookArgs $args) { self::logit("clearTemplateCache wurde aufgerufen."); }
static function logit($message) { $datei = fopen(dirname(\_\_FILE\_\_).'/log.txt', 'a'); $timestamp = date("d.m.Y - H:i",time()); $message = $timestamp . " - $message\n"; fwrite($datei,$message); fclose($datei); }
Folgendes Problem: Shopwareversion 3.5.3: Funktioniert! :thumbup: Shopwareversion 3.5.4: Funktioniert NICHT! :thumbdown: Kann mir das mal jemand erklären?
Was sagt Firebug? Mach mal ein die(‚stopp‘); in die myclearTemplateCache um zu überprüfen, ob die Funktion überhaupt ausgeführt wird.
Firebug sagt in beiden Fällen nichts. Bei 353 funktioniert das Logging, bei 354 nicht. die('stopp');
Bringt in 353 einen [quote]missing ) in parenthetical[/quote] Fehler. Zumindest bedeutet das, dass er die Methode ausführt. 354 macht an dieser Stelle ebenfalls nichts, scheint dort überhaupt nicht ausgeführt zu werden. (Es wird ja schon bei der Plugin Installation nichts geloggt…) Des weiteren ist mir aufgefallen, dass in der 353 unter Proxies die ShopwareControllersBackendCacheProxy.php ordnungsgemäß erweitert ist. Bei 354 geschieht dort nichts.
Dann deinstalliere das Plugin mal. Lösche oder benenne den Proxy um (ShopwareControllersBackendCacheProxy.php) Dann wieder installieren und testen.
Das hat nichts gebracht. Allerdings habe ich das Problem gelöst. Es lag scheinbar an Schreibrechten. Als ich dem Ordner des Plugins 777 gegeben hatte, funktionierte alles wunderbar. Trotzdem Danke!