Einige Artikel empfehlen, benutzerdefinierte Erweiterungen in app/code
zu erstellen, andere empfehlen, sie unter zu erstellen vendor
. Sind beide Methoden in Ordnung?
Was ist, wenn ich ein Modul überschreiben möchte vendor
? Muss ich mein benutzerdefiniertes Modul auch in einen vendor
Ordner schreiben oder app/code
?
Funktionieren sie als Codepools wie in Magento 1.x?
Bitte klären Sie den Zweck der einzelnen Verzeichnisse.
magento2
magento-2.1
extensions
Sukeshini
quelle
quelle
Antworten:
Sie können sich die Ordner
app/code
undvendor
die Codepools in M1 ansehen, aber es handelt sich nicht wirklich um Codepools.In M1 gibt es kein "Codepool" -Konzept.
vendor
Ordner ist für Module, die Sie über Composer herunterladen. Sie sollten keinen Code in diesen Ordner schreiben.app/code
ist dein Spielplatz. Fügen Sie hier Ihre eigenen Erweiterungen hinzu.Wenn Sie etwas im
vendor
Ordner neu schreiben / erweitern müssen , können Sie dies imapp/code
Ordner tun . Stellen Sie einfach sicher, dass Sie die weiche Abhängigkeit inmodule.xml
Ihrem Modul angeben , genauso wie Sie es in M1 inapp/etc/modules/Namespace_Module.xml
Datei getan haben .Der einzige Unterschied besteht darin, dass es sich in m2 nicht um Abhängigkeiten handelt. Sie sind Sequenzen.
Auf diese Weise wird Ihr Modul nach dem aus dem
vendor
Ordner geladenquelle
app/code
ist dies kein Spielplatz;)XM
L-Datei in einem Anbietermodul überschreiben möchten , müssen wir dann noch die Abhängigkeiten in erwähnenmodule.xml
?app/code
In diesem Fall erhalten Sie die Kernmodule , können aber trotzdem Ihre eigenen Module hinzufügen. Und der einzige Grund, warum Sie m2 über Github installieren sollten, ist, damit herumzuspielen und / oder dazu beizutragen. Das macht also technisch immer nochapp/code
Ihren Spielplatz.app/code/Vendor
ist Ihr Spielplatz, also kein Risiko, Kernmaterial zu brechenapp/code
ist definitiv der richtige Ort für die Module Ihres Projekts.Sie dürfen niemals Code in
vendor
dieses Verzeichnis schreiben (dieses Verzeichnis wird in Ihrer Quellcodeverwaltung nicht ignoriert), da es nur von Composer verwaltet wird und für Module oder Module von Drittanbietern vorgesehen ist, die Sie wiederverwenden möchten (und die Sie in Packagist oder Ihrem eigenen Satis-Repository veröffentlicht haben) ).quelle