Plugins ab 5.2

Moin, ich habe ein älteres eigenes Plugin welches ich nicht im Detail posten kann. Unter 5.1.6 lässt es sich prima installieren, unter 5.2 kann ich es zwar hochladen aber nicht mehr das „Plus“ Zeichen im Plugin Manager drücken. Es kommt der Konsolen-Fehler „example.com/backend/PluginInstaller/installPlugin 503 (Service Unavailable)“. Was hat sich denn in 5.2 geändert?

Das Plugin:

  • legt eine Datenbanktabelle an
  • hat Plugin Configs
  • hat JS, LESS, Template Files
  • hat ein eigenen MenuItem-Punkt und Fenster
  • hat Frontend Controller für Formulareingabe mit Captcha sowie Frontend Daten Ausgabe 
  • customModels etc also eigentlich alles.

 Ich bin für jeden Hinweis dankbar.

PS: Eine Frage vll. in vielen neueren Pluginbeispielen habe ich keine afterInit() gesehen, sondern, dass die registerCustomModels in der Funktion updateSchema() untergebracht ist. Spielt das eine Rolle?

Ist das ein über den store gekauftes plugin?

 

Aktiviere mal die Fehlerausgabe oder schau in die Logs.

503 Error bringt nicht viel.

@malzfons‍, nein das habe ich vor 3 Jahren selbst programmiert und im letzten Jahr geupdatet für 5.1.2. 

@ottscho‍ , könntest du mir bitte sagen wo ich die Fehlerausgabe aktiviere? Ich steh auf dem Schlauch.

Dankeschön.

@brettvormkopp schrieb:

könntest du mir bitte sagen wo ich die Fehlerausgabe aktiviere? Ich steh auf dem Schlauch.

Dankeschön.

https://developers.shopware.com/developers-guide/debugging/

1 Like

Hi, ok, das werd ich mir dann lieber in einer Virtuellen Umgebung einrichten. 

Hallo,

ja, das Debugging sollte man unter keinen Umständen in einer produktiven Umgebung aktivieren. Damit zeigt man Hackern die PHP Fehler auf und somit mögliche Angriffsvektoren.

 

Wenn Du bereits so viel an deinem Plugin gemacht hast, dann wundert es mich, dass Du den Fehler nicht selber finden konntest. 503 Serivce Unavailable wird in Shopware immer entweder durch einen PHP Fehler oder durch eine nicht abgefangene Exception ausgelöst. Also prüfe doch bitte mal Deine server error_log nach dem Fehler. Wenn nichts weiter angegeben ist, dann landen darin die PHP Fehler. Bzw. vielleicht hat Shopware via Monolog auch etwas mitgeloggt. Prüfe doch mal auch die Logs unter var/log, ob es das eine Datei gibt, die mit core_production oder mit plugin_production beginnt. Wenn Du Monolog selber nicht in Deinem Plugin ansprichst, dann sollten theoretisch die Fehler in dem Core Channel landen, also sprich in der core_production-.log

 

MFG

 

derwunner

1 Like

Hi, jo danke für die Hinweise. Fehler gefunden.

Es war der Fehler, dass das Menu findOneBy jetzt in einem Array stecken muss. findOneBy([‚label‘ => ‚Kunden‘])

@brettvormkopp schrieb:

Hi, jo danke für die Hinweise. Fehler gefunden.

Es war der Fehler, dass das Menu findOneBy jetzt in einem Array stecken muss. findOneBy([‘label’ => ‘Kunden’])

Das war schon immer bei der Doctrine Methode findOneBy so?! 

@derwunner schrieb:

@brettvormkopp schrieb:

Hi, jo danke für die Hinweise. Fehler gefunden.

Es war der Fehler, dass das Menu findOneBy jetzt in einem Array stecken muss. findOneBy([‚label‘ => ‚Kunden‘])

Das war schon immer bei der Doctrine Methode findOneBy so?! 

Hallo,

genauso ist es, der Menüpunkt musste ansich schon immer in einem Array sein.

Beste Grüße

Sebastian

@sschreier‍ , bezogen auf aktuelles Doctrine kann das schon stimmen, es war jedoch bei Doctrine unter Shopware früher ohne Array möglich.

@brettvormkopp schrieb:

@sschreier‍ , bezogen auf aktuelles Doctrine kann das schon stimmen, es war jedoch bei Doctrine unter Shopware früher ohne Array möglich.

Hallo,

was „möglich“ und was „richtig“ ist, sind natürlich auch zwei paar Schuhe. Möglich war es bis Shopware 5.2 - richtig aber nicht (dürfte noch ein Überbleibsel von Shopware 4 sein).

Beste Grüße

Sebastian

Naja, wahrscheinlich gab es früher einen object zu array konverter, was ja in PHP im Prinzip ein einfacher array downcast ist. Shopware bietet auch einen von Doctrine abgeleiteten EntityManager an (warum auch immer, ist eigentlich unnötig, weil der auch nicht mehr oder bessere Funktionaltiät bietet).