Seit nun 3 Wochen wird ein neues Plugin im Store abgelehnt. Begründung der Cache wird nicht korrekt geleert. Zitat vom Store Team:
Weiterhin ist es der Fall das der Cache geleert wird wenn das Plugin den Status von Deaktiviert zu Deinstalliert wechselt. So kann ich das Plugin leider nicht freigeben.
Was ist denn hier nicht korrekt?
public function install(InstallContext $context) {
//
}
public function activate(ActivateContext $context) {
$context->scheduleClearCache(ActivateContext::CACHE_LIST_ALL);
}
public function deactivate(DeactivateContext $context) {
$context->scheduleClearCache(DeactivateContext::CACHE_LIST_ALL);
}
public function uninstall(UninstallContext $context) {
$context->scheduleClearCache(UninstallContext::CACHE_LIST_ALL);
}
public function update(UpdateContext $context) {
$context->scheduleClearCache(UpdateContext::CACHE_LIST_ALL);
}
Witzig dabei ist, dass selbst das Shopware PayPal-Plugin so seinen Cache leert. Das würde bedeuten, Shopware macht es selbser falsch aber schreibt Herstellern das es falsch ist. Was soll das bitte Shopware?
Was ist hier nun falsch? Und wie muss es denn richtig sein?
Naja - der Kollege möchte nicht, dass bei jeder Aktion unnötig der cache gelöscht wird. Er sagt, dass du bei der Deinstallation prüfen sollst, ob das Plugin vorher aktiviert oder deaktiviert war. Falls es bereits deaktiviert war (und bei der Deaktivierung der cache gelöscht wurde) dann hier nicht den cache löschen.
Ich finde das auch eine totale Gängelung der Plugin-Hersteller. Das mit dem Cache ist Meckern auf höchstem Niveau. Kann mir bitte jemand einen Use-Case nennen, wo ein Plugin im Livesystem während des Hauptbetriebs deinstalliert wird, sodass es ein Problem wäre, dass der Cache einmal zu viel geleert wird?
WTF
Hier ein paar Dinge, die ich mal hervorheben möchte:
Die Plugins werden nur beim ersten Upload geprüft. Danach kann der Hersteller im Update eine Backdoor einbauen, gegen alle Regeln verstoßen und Shopware würde das Update ohne Prüfung veröffentlichen. Bei Backdoors etc. würde es wahrscheinlich irgendeinem Käufer mal auffallen. Aber bei dieser Cache-Geschichte in diesem Beitrag ist es dann herzlich egal.
Ich habe ein Theme gekauft, dass eine SQL-Injection Lücke im Code hatte. Wie konnte das durch den Review kommen, wenn hier so penibel alles geprüft wird. Sogar die Cache-Logik??
Wie @R4M im ersten Beitrag schon erwähnt hatte, Plugins von Shopware verstoßen auch oft gegen die Richtlinien.
Ansonsten muss man das auch etwas im Kontext setzen: Es wird vieles richtig gemacht. Nicht alles ist schlecht. Aber ihr (Shopware) wollt ja auch besser werden, daher denke ich, dass es wichtig ist, das dieses Thema hier auch mal angesprochen wird.
Qualität ja, aber hier ist man m.M.n. realitätsfern.
Anfangs fand ich das Thema Plugin-Erstellung noch echt reizend, aber Frage mich jedes mal mehr ob sich der Aufwand lohnt. Ich bin doch komplett für den Support und die Funktionalitäten meiner Plugins verantwortlich. Klar die Kunden sollen keine BETA Tester sein - aber genau so hat sich doch Shopware auch zu dem entwickelt was es ist. Ich bin als Plugin-Entwickler auch auf Kundenfeedback angewiesen um stets meine Plugins weiter zu entwickeln. Ich möchte auch mal weiter gehen und komplexere Plugins bauen, aber ich habe absolut null Bock das jedes Plugin zu einem Berliner Flughafen Projekt wird
Zudem ist man ja komplett von SW abhängig, also man setzt seine ganze Existenz aufs Spiel - klar überlegt man sich dann zwei oder dreimal Shopware selbst negative Kritik zu äußern. Ich hatte jetzt dem Moritz ne Mail geschickt, weiß aber nicht ob er für SW5 auch dem Com Manager ist. @R4M probiers einfach mal über andere Wege…
Wie gesagt kurzfristig wird man das alles individuell lösen und besprechen müssen. Allgemeines Feedback und Diskussion dazu, liefert natürlich generellen Input, aber diese Dinge werden sich nicht von heute auf morgen ändern. Da hängen halt Prozesse dran die ggf. umgestellt werden müssen und natürlich auch Gespräche mit Plugin-Herstellern und vieles mehr. Zielorientiert also jetzt erstmal das Gespräch suchen um die Dinge individuell zu klären.
Nach Ostern (weil ich aktuell im Urlaub bin) sitze ich mit den Kollegen nochmal zusammen und wir werden das Feedback nochmal offen durchgehen und schauen was für Schritte man kurzfristig und langfristig daraus ableiten kann. Fakt ist allerdings, dass wenn ihr akut eine Lösung für ein gezieltes Problem braucht, dann muss man es individuell lösen. Da spiele ich gerne Vermittler in der nächsten Woche. Hier im Forum werde ich individuelle Gespräche und Verläufe jetzt nicht kommentieren/beurteilen.
Zielorientiert also jetzt erstmal das Gespräch suchen um die Dinge individuell zu klären.
Leider schreibt mir von Woche zu Woche immer wieder ein anderer vom Store Team. Mit wem bitte soll ich da Gespräche führen? Ich suche hier eine Lösung! Und Shopware muss mir mal bitte erklären warum Plugins abgelehnt werden wenn man sich an die Doku hällt die Shopware selber verfasst hat. Dann schreibt bitte eure Dokumenationen um und lehnt dann bitte die Plugins ab, aber nicht umgedreht.
3 Wochen sind vergangen und ich komme nicht weiter. Unzählige Mails hin und her geschreiben haben jedoch zu nichts geführt. So geht das nicht weiter. Ne ganz ehrlich, es kotzt mich an.
PS: Nach dem eingangs erwähnten Beitrag dürfte das Shopware PayPal-Plugin gar nicht im Store liegen. Fazit: Selber mist bauen, aber Hersteller hinhalten!
Naja, ich hab von dir noch keine Mail oder Nachricht bekommen und das auch schon letzte Woche angeboten. Sicherlich kann man sich auch immer an die eigene Nase fassen, aber die Plugins sind auch schon lange in Store und wir schmeißen bestehende ja auch nicht wieder raus, wenn sich da was ändert. Du hast ja sicherlich auch andere im Store die noch drin sind. Das Argument führt jetzt nicht dazu, dass dein Problem behoben wird, auch das aufzeigen der Dokumentation nicht.
Zielorientiert wäre für mich jetzt, dass du mir schreibst was du aktuell nicht umsetzen kannst und warum und ich besorge dir ein Beispiel. Grundsatzdiskussionen führen jetzt nicht dazu, dass sich das schnell und einfach klären lässt.
Naja, ich hab von dir noch keine Mail oder Nachricht bekommen
Ich weis auch nicht an welche Mail ich was senden soll.
Du hast ja sicherlich auch andere im Store die noch drin sind.
Das ist korrekt, aber keines hat so viel Ärger verursacht wie das aktuelle. Bei keinem Plugin hies es, ich müsse bei der Deinstallition prüfen ob ein Plugin aktiv oder deaktiv ist. Das steht so auch nirgends als Vorgabe. Zumal ich im Vorfeld von eurem Store Team reichlich verwirrende Aussagen bekommen habe, weil mir 2 Personen unterschiedliche Aussagen per Mail zugeschickt haben.
Zielorientiert wäre für mich jetzt, dass du mir schreibst was du aktuell nicht umsetzen kannst und warum und ich besorge dir ein Beispiel.
Das steht eigentlich im Eingangspost. Ich werde da jetzt vermutzlich eine SQL-Abfrage einbauen und in der Hoffnung das es euren Richtlinien entspricht.
Fazit: Jetzt baue ich wieder alles um (in der Hoffnung das es geht bzw. vom Store-Team zugelassen wird, eine Vorlage gibt es ja nicht und wird auch nicht angeboten), warte wieder über eine Woche weil auch noch Ostern ist und dann sind 4 Wochen vergangen
Ich habe mir die Anforderung angeschaut und dies lässt sich mit einem simplen If-Abfrage um das Cache leeren lösen. Mithilfe von “$context->getPlugin()->getActive()” kann man aktuellen Status des Plugins abfragen. Das ganze in richtig würde so aussehen.
if ($context->getPlugin()->getActive()) {
$context->scheduleClearCache(UninstallContext::CACHE_LIST_ALL);
}
so in etwa hätte ich das jetzt auch gemacht. Und hätte mir das jemand vor 3 Wochen so gesagt bzw. mal vorher in die Doku eingetragen, dann gäbe es nicht diesen Thread hier.
Naja, ich hab von dir noch keine Mail oder Nachricht bekommen
Ich weis auch nicht an welche Mail ich was senden soll.
Nächstes Mal eben eine PM um welches Plugin es geht, welcher Hersteller du bist, mit wem du gesprochen hast,… das weiß ich ja bis jetzt nicht. Unter forum@shopware.com erreicht man mich auch per Mail. Ein paar Infos zum Vorfall brauch ich um mit das anzusehen.
Jetzt hab ich einfach geschrieben „da ist irgendeiner im Forum, mit dem hat irgendwer geschrieben wegen Cache“
Aber gut, hat ja funktioniert und Shyim hat sich zurück gemeldet.
Ja, nun hat mir eine dritte Person geschrieben und den selben Code zugeschickt. Ich hoffe, dass es nun den Richtlinien entspricht.
Und wie schon in der Mail an das Store Team: Aber bitte, passt eure Dokumentation an. Die ist ja für Entwickler gedacht und wenn dort aktuelle Richtlinien fehlen, dann vergeht jedes mal wertvolle Zeit mit warten und schreiben von Mails.