shop plugins mit composer verwalten

dies ist nur für shopware plugins die in eine (für dich) öffentliche git repo stehen!

wir haben mittlerweile mehrere shopware shops und (private) plugins, und ich wollte die plugins in den verschiedenen shops einfacher verwalten (als vorher mit git submodules, was ein albtraum!).

also habe ich composer probiert und es funktioniert wunderbar:

  1. in dein plugin root ordner composer.json erstellen:

    {
    name: “FooBar”
    }

  2. deine plugin release version in git tags addieren:

    git tag 1.0.0
    git push --tags

  3. in gewünschten shopware shop(s) custom/plugins/composer.json addieren:

    {
    “config”: {
    “vendor-dir”: “.”
    },
    “repositories”: [
    { “packagist.org”: false },
    { “type”: “vcs”, “url”: “git@github.com:example/FooBar” }
    ],
    “require”: {
    “FooBar”: “1.0.0”,
    }
    }

  4. dann einfach composer update in custom/plugins/ ordner machen, und fertig.

  5. falls dein shopware shop auch in git ist, composer “müll” in custom/plugins/.gitignore setzen:

    /composer
    /autoload.php

ps. bloß nicht composer update in shopware shop root ordner ausführen :wink:

Ich würde eher einen lokalen Satis Server aufsetzen anstatt jedes mal nen neuen vcs hinzuzufügen.

Du kannst auch richtige Shopware Composer Plugins machen siehe hier Beispiel composer.json FroshProfiler/composer.json at master · FriendsOfShopware/FroshProfiler · GitHub

was genau ist eine “richtige Shopware Composer Plugin”?

Ist zwar ein alter Tread, jedoch passend zum Thema, daher lieber diesen Nutzen anstatt einen neuen erstellen.

Eine SW 5.6.4 Installation wurde lokal heruntergezogen und mit der Anleitung von Shopware zu einer “composer Installation” umgemünzt.
Neue Plugins installiere ich nun via composer, doch bestehende Plugins wie z.b. ein Paymentplugin oder ein Theme Plugin, liegen aktuell noch unter “Plugins/Community/Frontend/”. Gerne würde ich diese im Ordner “custom/project” nutzen, da dieser Ordner für neue Plugins genutzt wird, welche nicht via Composer installiert werden können (ansonsten habe ich was falsch verstanden). Ein verschieben des Ordners mit Anschliessendem Cache leeren, wirft einen Fehler im Backend (welcher glaubs für meine Frage unrelevant ist).

Frage : Wo/Wie installiere ich Plugins aus dem Shopware Store in einer Composer installation, so dass diese bei einem deployment via git clone auch installiert werden?

Schau mal hier: https://packages.friendsofshopware.com/

1 Like

Ich wusste da war doch was… danke dir!

Gehe ich korrekt davon aus, dass ich die Plugins aus „Plugins/Community/Frontend/“ nicht einfach in „custom/project“ verschieben kann? Zumindest fürs erste, bis etwas Erfahrung mit deinem Package meinerseits vorhanden ist.
Mir fehlt da aktuell noch etwas an Wissen in der Pluginprogrammierung um das zu verstehen.

Genau du brauchst weiterhin die Ordner. Aber der Inhalt kommt automatisch von Composer

Danke fürs Feedback.

Mhm für die lokale Entwicklung und Testumgebungen (z.b. mit Wildcarddomain) kann ich deinen Lösungsweg (laut requirements im readme) jedoch nicht nutzen. 
Wenn ich z.b. ein Redesign mache von einem Theme, welches auf einem Theme Plugin aufbaut, muss ich dieses ja auch lokal installieren können.

Beim Download passier keine Validierung von Hostname. Sollte eigentlich gehen. Wo denn im Readme?

Im Readme deines Repository:
https://github.com/shyim/store-plugin-installer/blob/stable/README.md