Die statische Code-Analyse meines Plugins schlägt fehl:
A not allowed file or folder was found, Context: [expected namespace: composer.json/, found namespace: src/]
the required composer.json file was not found
the required composer.json file was not found
Warnings:
Warnings of the static code analysis:
------ ------------------------------------------------------------------
Line src/Subscriber/StoreFront.php
------ ------------------------------------------------------------------
36 Class Shopware\Storefront\Event\StorefrontRenderEvent not found.
------ ------------------------------------------------------------------
[ERROR] Found 1 error
Zur composer.json: Ist vorhanden.
Bei den Warnings meckert er, dass das die Klasse nicht gefunden wurde, was geht hier schief? Meine StoreFront Klasse sieht in etwa so aus:
use Shopware\Storefront\Event\StorefrontRenderEvent;
class StoreFront implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
StorefrontRenderEvent::class => 'onStorefrontRender',
];
}
Funktionieren tut das Plugin ebenfalls einwandfrei.
Ich kann den Fehler reproduzieren, ich erhalte beim Upload eines SW 6 Plugins ebenfalls die Fehlermeldung:
A not allowed file or folder was found, Context: [expected namespace: composer.json/, found namespace: src/]
the required composer.json file was not found
the required composer.json file was not found
Ich vermute einen Fehler in der statischen Code-Überprüfung.
@oli_ Laut Dokumentation sollte aber Herstellername und Technischer Name getrennt sein, im Beispiel:
=> Der technische Name lautet “BaseClass”, nicht “SwagBaseClass”. Andernfalls wäre es auch redundant, weil im gesamten Namespace der Herstellername zwei mal erscheinen würde. Den Herstellernamen als Teil des Namespaces zu entfernen und dem Teil des technischen Namen hinzuzufügen - so wie es bei Shopware 5 war - dürfte doch eigentlich nicht richtig sein, weil dei Dokumentation klar etwas anderes aussagt. Es wundert mich, dass es für Dich funktioniert. Vielleicht ist für die Shopware 6 Plugins noch die statische Code-Analyse für Shopware 5 (zum Teil) aktiv?
Ich habe mal ein Beispiel-Plugin hochgeladen, bei dem der Fehler auftritt:
Ich habe mir die Sache noch einmal angeschaut.
Wenn ein neues Plugin im Herstellerbereich angelegt wird, muss ein „Technischer Name“ eingetragen werden.
Das erste Level in der hochzuladenden ZIP-File muss ein Verzeichnis sein, das diesem Technischen Namen entspricht. Entsprechend muss der Namespace und der Bootstrap-Klassename heißen. @oli_ liegt also damit richtig, dass der Herstellername der beginnende Teil des technischen Pluginnamens ist - weil die Oberfläche in Shopware aktuell nicht erlaubt, einen technischen Namen ohne Hersteller-Prefix festzulegen . Trotzdem funktioniert es, wenn der Herstellername als weiterer Teil des Namespaces bestehen bleibt.
Um die ZIP-Datei zu bauen, lege ich im Verzeichnis des Plugins parallel zum src-Verzeichnis und zur composer.json ein build.sh-Script mit folgendem Inhalt an:
Die Code-Analyse bemängelt bei mir nach wie vor alle Parameter in Subscribern (das diese angeblich nicht existieren).
Ich hatte das dem Account-Team genannt mit der Antwort, dass die Code-Analyse noch fehlerhaft ist. Dementsprechend ignoriere ich die Meldungen, weil diese faktisch falsch sind.