Die Logik hinter "psh.phar administration:build"

Hallo Community!

in meinen Plugin „muss“ ich eine Erweiterung des Admin-Bereichs implementieren. Bei den HowTos (hieroder hier), die sich mit dem Thema beschäftigen wird der Befehl:

„./psh.phar administration:build“

als eines der notwendigen Schritte erwähnt/vorausgesetzt.  Dabei wird erklärt, dass durch diesen Befehl „minimisierte“ JS-Dateien in das Pluginverzeichnis selbst, aber auch ins „public“-Verzeichnis des Shopware6-Installation kopiert werden.

Daraufhin habe ich dann festgestellt, dass in meiner Installation das „psh.phar“-Tool garnicht dabei war, weil ich wohl (laut einem Forumsbeitrag) nicht die Development-Installation, sondern die produktive Installation heruntergeladen habe.

Jetzt zu meinen Fragen:

1.Aber ich muss doch auch in einer produktiven Umgebung ein (fremdes) Plugin installieren können. Außerdem, wenn ich mir ein Plugin aus dem Store heruntergeladen habe, dann weiß ich doch nicht unbedinbgt, dass es eine Admin-Erweiterung implementiert. Ich würde es einfach installieren, aktivieren und würde erwarten, dass es damit erledigt ist.

  1. Kriege ich das jetzt noch überhaupt hin, in meiner „produktiven“ Umgebung das „psh.phar“ zu simulieren, bzw. das Plugin „vollständig“ zu installieren?

Habe ich das Konzept komplett missverstanden?

Für eine Aufklärung wäre ich sehr dankbar!

Grüße, ruppert

Hi,

zu 1: Drittanbieterplugins sind bereits “kompiliert”, die kann man einfach installieren.

zu 2: Du kannst einfach übers Terminal Dateien aus dem bin Ordener ausführen: bin/build-administration.sh

Generell ist es aber lohnenswert, eine lokale dev-Installation für Pluginentwicklungen etc. zu installieren. Dort alles nötige zu programmieren, builden, testen… und dann im Production-System nur noch zu installieren/updaten.

1 Like

Hey Alex, vielen Dank für deine, super schnelle Antwort!

Ich verstehe deine Antwort so, dass es nicht ims „richtige“ Installieren, sondern um das „Compilieren“ des Plugins geht. Mach an sich Sinn. Dennoch ist mir nicht klar in welchem Schritt dann etwas in meiner „/public/bundles…“ landet . Hier ist das, was ich meine als Zitat aus dem HowTo(unterstrichen):

Given this plugin would be named „AdministrationNewColumn“, the minified javascript code for this example would be located under /src/Resources/public/administration/js/administration-new-column.js, once you run the command ./psh.phar administration:build in your shopware root directory. Note: Your plugin has to be activated for this to work. Make sure to also include that file when publishing your plugin! A copy of this file will then be put into the directory /public/bundles/administrationnewcolumn/administration/js/administration-new-column.js.

Hierfür reicht ja das Kompileieren des Plugins in meiner lokalen Umgebung nicht aus, denn irgendwie muss es ja auf dem Produktivsystem unter „/public/bundles…“ landen. Oder?

Danke und Gruß, ruppert

doch, administration:build erstellt die ganzen Dateien und legt sie in den Ordner /public. Du musst sie dann noch im Template-HTML einbinden. Da /public das Web-Root Verzeichniss ist, wäre der Pfad im o.g. Beispiel ``