Plugin Store Code Review shopware-plugin-class

Ich scheitere schon am ersten Code-Review, da ich hier nicht ganz durchblicke und die Doku hierzu mager ist und ich nichts passendes finde.

Fehler: 

_the composer.json file is invalid, Context: [reason: Under 'extra'.'shopware-plugin-class' you have to enter the full qualified classname of your plugins base class. The class name must match the technical name of your plugi_

Hersteller Präfix im Store:  sas

Technischer Plugin Name:  SasTags

Hier wollte ich eigentlich Tags angeben - Jedoch hat der Assistent gemeckert, dass ich den Präfix mit angeben muss.

Im Plugin: 

"shopware-plugin-class": "Sas\\Tags\\Tags",

Die Base Class:

Ich würde es jetzt so verstehen, dass es wie folgt sein müsste:

"shopware-plugin-class": "SasTags\\SasTags",

Allerdings wäre das in meinen Augen nicht ganz optimal - HerstellerPräfix\Pluginname so dachte ich wäre es korrekt? Was mache ich hier falsch / übersehe ich? :slight_smile:

Hallo,

ist dein technischer Name (im Shopware Account) des Plugins wirklich nur „Tags“? Dies ist sehr unwahrscheinlich, da ja dann dein Herstellerkürzel fehlen würde.

Im Prinzip ist die Meldung eigentlich sehr eindeutig: dein festgelegter, technischer Name ds Plugins im Shopware Account stimmt nicht mit dem in der composer.json überein.

Es müsste also eher:

„shopware-plugin-class“: „sas\sasTags\sasTags“,

lauten (um es dann überall einheitlich zu halten, alternativ kannst du beim ersten Wert auch das sas weglassen).

Grüße

Sebastian

1 Like

Ich bin ein wengi verwirrt bzgl. der ganzen Namen.

Im Plugin im Store habe ich “SasTags” angegeben als technischer Plugin Name. Der Hersteller Präfix ist “sas”.

Vielen Dank für den Hinweis, dass hat mir nun geholfen.

Die Baseclass muss also immer heißen technischerPluginName welchen ich im Store angegeben habe - Und damit eingehend also Herstellerpräfix und Name. Derr Namespace ist daher immer 

 namespace HerstellerPräfix\TechnischerPluginName; 

Ist das so korrekt?

Hallo,

nein, nur die BaseClass muss so heißen, die dein technischer Pluginname. Der Namespace davor ist völlig egal. 

"shopware-plugin-class": "Sas\\Tags\\SasTags",

So müsste das auch funktionieren.

Viele Grüße aus Schöppingen

cool Michael Telgmann

2 Likes

Alles klar, super - Danke euch 

Guten Morgen,

ich muss noch einmal nachforschen: Bei einem weiteren Plugin habe ich nun erneut den Fehler. Ich habe mir auch andere Plugins angeschaut - Ich habe es im Endeffekt genau gleich, verstehe daher den Fehler nicht.

[@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann „Michael Telgmann“)‍ Kannst du vielleicht noch einmal helfen?

Basic plugin analysis failed. shopware plugin class not found in any defined autoload namespace, Context: [shopware-plugin-class: Sas\Maps\SasMaps]

Technischer Pluginname im Store: SasMaps

SasMaps/src/SasMaps.php

SasMaps/composer.json

    "autoload": {
        "psr-4": {
          "Sas\\SasMaps\\": "src/"
        }
    },
    "require": {
        "shopware/core": "6.1.*",
        "shopware/administration": "6.1.*",
        "shopware/storefront": "6.1.*"
    },
    "extra": {
        "shopware-plugin-class": "Sas\\Maps\\SasMaps",
        "label": {
          "de-DE": "Maps",
          "en-GB": "Maps"
        }
    }

 

Hallo,

der autoload part müsste so aussehen: “Sas\Maps\”: “src/”

Viele Grüße aus Schöppingen

cool Michael Telgmann

2 Likes

Wie die Fehlermeldung schon sagt: du hast im Autoload einen Namespace angegeben, deine Pluginklasse ist aber in einem anderen:

2 Likes

Oje … Ich musste tatsächlich erst einmal 5x drauf schauen, bevor ich es gesehen habe. Danke euch  Angry-Face