Ich möchte ein Abhängigkeite, die ich über Composer bezogen habe, in meinem Plugin registrieren. Ich habe den vendor-Folder und die autoload.php soweit vorliegen. Laut Doku muss ich nun einfach die autoload requiren/einbinden aber in welcher Methode mach ich das am Besten?
// https://developers.shopware.com/blog/2015/11/11/best-practices-of-shopware-plugin-development/#using-composer
public function registerMyComponents()
{
require_once $this->Path() . '/vendor/autoload.php';
}
Soll ich dazu die getSubscribeEvents missbrauchen oder gibt es im neuen Plugin-System einen vorgeschriebenen Weg um Abhängigkeit per Composer einzubinden und dann normmal per use zu nutzen? Es gibt eine registerCommands in der Shopware\Components\Plugin-Basisklasse. Überschreiben/Erweitern?
“// conditional declaration is *not* a side effect” bedeutet hier m. E., dass im globalen Namensraum erst geprüft wird, ob das Symbol schon vorhanden ist. Hier beim Einbinden des Vendor Verzeichnisses wird ja nur geprüft, ob die Datei vorhanden ist.
Ich denke aber auch, dass da grundsätzlich eher keine Problematik draus entsteht. Und mit Shopware 5.4 wird ja eh alles besser
In meinem Fall hab ich einfach nur PhpOffice/Spreadsheet einbinden müssen für ein internes Plugin. Das Paket PhpOffice/Spreadsheet wird nur per Composer bereitgestellt, daher die ursprüngliche Frage). Da es ein internes Plugin ist und nicht an andere weiter gegeben, kann ich an der Stelle den Weg des geringsten Widerstandes gehen. Trotzdem danke für die weiteren Vorschläge.
@Shyim, ich kenne die Optimierung von Shopware 5.4 hinsichtlich Composer;) Und da ich nur einen Shop betreue, bringt mir das höchstwahrscheinlich auch einige Vorteile. Für einen Plugin Hersteller wäre m. E. aber das Composer Merge Tool weiterhin eine gute Sache.