Aktualisieren
Es sieht so aus, als hätten sich einige Dinge mit einigen letzten Änderungen (7. Oktober) in der Entwicklungsbranche geändert. Es scheint nun möglich zu sein, ein Modul zu unterstützen, das sich im Herstellerverzeichnis befindet.
Ich habe zwei Beispiele für die Installation von Modulen erstellt. Eine, die Dateien in App / Code kopiert, und eine andere, die das Modul registriert, in dem es sich im Herstellerverzeichnis befindet.
Kopierstrategie: https://github.com/mttjohnson/magento2-sample-module-minimal-copy
Registrierungsstrategie: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Für Entwicklungszwecke halte ich die Verwendung der Registrierungsstrategie für nützlicher, da die von Magento ausgeführten Dateien direkt geändert, getestet und dann wieder in das Modul-Repo übernommen werden können.
Ursprüngliche Antwort
Wenn Sie eine composer.json
Datei für Ihr Modul-Composer-Paket haben, die einen Typ von enthält, magento2-module
werden standardmäßig Dateien in ein angegebenes zugeordnetes Verzeichnis im app/code
Verzeichnis kopiert .
{
"name": "vendorname/module-name",
"type": "magento2-module",
"require": {
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"module",
"VendorName/ModuleName"
]
]
}
}
In diesem Beispiel führt composer.json zum Namen vendorname/module-name
des Composer-Pakets, in dem die Dateien für das Composer-Paket abgelegt werden vendor/vendorname/module-name
.
Der spezielle Typ von magento2-module
ist als Composer-Plugin im Magento / Magento-Composer-Installer- Paket implementiert. Deshalb habe ich es im Abschnitt "Erforderlich" aufgeführt. Es ist dieses Composer-Plugin, das das Kopieren von Dateien in das entsprechende Magento- app/code
Verzeichnis übernimmt .
Der extra: {map: [["composerDir","MagentoDir"]]}
Composer-Plugin-Installer verweist auf diesen Abschnitt, um zu erfahren, welcher Teil Ihres Composer-Pakets welchem Teil Ihrer Magento-Verzeichnisstruktur zugeordnet werden soll. In dem bereitgestellten Beispiel würde dies vendor/vendorname/module-name/module
Dateien von dort nach kopieren app/code/VendorName/ModuleName
.