Aktualizacja
Wygląda na to, że kilka rzeczy uległo zmianie wraz z niektórymi najnowszymi zmianami (7 października) w branży deweloperskiej. Teraz wygląda na to, że można obsługiwać moduł znajdujący się w katalogu dostawcy.
Stworzyłem dwa przykłady instalacji modułów. Jeden, który kopiuje pliki do aplikacji / kodu, a drugi rejestruje moduł, w którym znajduje się w katalogu dostawcy.
Strategia kopiowania: https://github.com/mttjohnson/magento2-sample-module-minimal-copy
Strategia rejestracji: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Dla celów programistycznych myślę, że wykorzystanie strategii rejestracji jest bardziej przydatne, ponieważ pliki uruchamiane przez Magento mogą być bezpośrednio modyfikowane, testowane, a następnie przekazywane z powrotem do repozytorium modułów.
Oryginalna odpowiedź
Jeśli masz composer.json
plik pakietu modułu kompozytora, który zawiera typ, magento2-module
wówczas domyślnie pliki zostaną skopiowane do określonego zamapowanego katalogu w app/code
katalogu.
{
"name": "vendorname/module-name",
"type": "magento2-module",
"require": {
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"module",
"VendorName/ModuleName"
]
]
}
}
W tym przykładzie composer.json nazwa pakietu kompozytora vendorname/module-name
spowoduje umieszczenie plików pakietu kompozytora vendor/vendorname/module-name
.
Specjalny typ magento2-module
jest zaimplementowany jako wtyczka kompozytora w pakiecie magento / magento-composer-installer . Dlatego wymieniłem go w sekcji wymagania. To ta wtyczka kompozytora kopiuje pliki do odpowiedniego app/code
katalogu magento .
Do tej extra: {map: [["composerDir","MagentoDir"]]}
sekcji odwołuje się instalator wtyczki kompozytora, aby dowiedzieć się, która część pakietu kompozytora ma zostać odwzorowana na część struktury katalogu magento. W podanym przykładzie wziąłoby to vendor/vendorname/module-name/module
i skopiowało pliki stamtąd do app/code/VendorName/ModuleName
.