Projekt

Allgemein

Profil

Aktionen

GX-Feature #61947

offen

Doppeltes Vendor-Verzeichnis

Von Mirko Janssen vor mehr als 5 Jahren hinzugefügt. Vor fast 4 Jahren aktualisiert.

Status:
In Prüfung
Priorität:
Normal
Zugewiesen an:
-
Kategorie:
Refactoring
Zielversion:
-
% erledigt:

0%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
Unbestimmt
Release Notes Langtext:
Tags:
EP

Beschreibung

Im Shop Repository gibt es zwei Composer Vendor-Verzeichnisse: Einmal das composer_components und src/vendor, wobei letzterer durch Gulp in das Shop-Verzeichnis kopiert wird.

Generell ist dies unschön (auch wenn eines der Verzeichnisse temporärer Natur ist), da das PHP Storm meckert und ein solches System an sich auch fehleranfälliger ist. Toby stört dies schon seit einiger Zeit und ich gebe ihm hierbei auch recht, weswegen ich mich schon einmal daran gemacht habe, dass Problem für v3.13 zu lösen. Hierbei bin ich jedoch auch einige Schwierigkeiten gestoßen, die größere Veränderungen mit sich ziehen würden und daher von entsprechender Steller zunächst bewertet werden sollten.

Momentan verlangen wir für die Ausführung der Unit-Tests, Gulp etc. das composer_components Verzeichnis, welches alle externen Libraries und Module für die Entwicklung enthält.
Der Shop selbst wiederum erwartet ein src/vendor Verzeichnis, welches alle Libraries und Module für den Produktiv-Betrieb enthält.
Es wird also je nach Betrachtungsweise von zwei unterschiedlichen Verzeichnissen ausgegangen.

Nun könnte man auf die Idee kommen (so war auch Tobys und mein erster Gedanke), das entsprechende Verzeichnis nur an einer der beiden Orten zu erzeugen und nicht mehr zu kopieren, sondern stattdessen für den Produktive-Betrieb entsprechende Libraries und Module zu entfernen. Hierbei ergeben sich dann aber Probleme mit dem PSR-4 Autoloading, dass man über die composer.json konfiguriert. In aktuellen Fall betrifft das die Klassen vom Admin Feed, da die für Hub Public nicht beachtet werden (warum auch immer o.O?).

Letztlich gibt es meiner Ansicht nach nur zwei Lösungen:

  1. Das Vendor-Verzeichnis befindet sich im Hauptverzeichnis des Projekt. Dann müsste die Art, wie dem Kunden der Shop ausgeliefert wird, angepasst werden. In diesem Fall müsste auch der Kunde das Vendor-Verzeichnis außerhalb des Shops ausgeliefert bekommen.

  2. Das Vendor-Verzeichnis befindet sich im Shop-Verzeichnis. Dann müsste die composer.json auch in das Shop-Verzeichnis liegen und composer entsprechend von dort aus installiert werden.


Aktionen

Auch abrufbar als: Atom PDF