Wo kann man benutzerdefinierte Erweiterungen für Magento2 erstellen?

9

Einige Artikel empfehlen, benutzerdefinierte Erweiterungen in app/codezu 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 vendorOrdner schreiben oder app/code?

Funktionieren sie als Codepools wie in Magento 1.x?

Bitte klären Sie den Zweck der einzelnen Verzeichnisse.

Sukeshini
quelle
Meiner Meinung nach müssen wir es in App / Code machen.
Arjun

Antworten:

7

Sie können sich die Ordner app/codeund vendordie Codepools in M1 ansehen, aber es handelt sich nicht wirklich um Codepools.
In M1 gibt es kein "Codepool" -Konzept.

  • vendorOrdner ist für Module, die Sie über Composer herunterladen. Sie sollten keinen Code in diesen Ordner schreiben.
  • app/codeist dein Spielplatz. Fügen Sie hier Ihre eigenen Erweiterungen hinzu.

Wenn Sie etwas im vendorOrdner neu schreiben / erweitern müssen , können Sie dies im app/codeOrdner tun . Stellen Sie einfach sicher, dass Sie die weiche Abhängigkeit in module.xmlIhrem Modul angeben , genauso wie Sie es in M1 in app/etc/modules/Namespace_Module.xmlDatei 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 vendorOrdner geladen

Marius
quelle
Nicht ganz richtig. Wenn Sie M2 über Github installieren, app/codeist dies kein Spielplatz;)
Raphael bei Digital Pianism
@Marius: Vielen Dank. Es löschte den Zweifel, den ich hatte. Wenn Sie die XML-Datei in einem Anbietermodul überschreiben möchten , müssen wir dann noch die Abhängigkeiten in erwähnen module.xml ?
Sukeshini
@ RaphaelatDigitalPianism. Ja und nein. app/codeIn 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 noch app/codeIhren Spielplatz.
Marius
@Sukeshini. Ich bin mir nicht sicher, aber ich denke du solltest.
Marius
@Marius stimmte zu w / alles, was Sie sagten, ich hätte gerade gesagt, app/code/Vendorist Ihr Spielplatz, also kein Risiko, Kernmaterial zu brechen
Raphael bei Digital Pianism
2

app/code ist definitiv der richtige Ort für die Module Ihres Projekts.

Sie dürfen niemals Code in vendordieses 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) ).

Aurélien FOUCRET
quelle