Aggiornare
Sembra che molte cose siano cambiate con alcune ultime modifiche (7 ottobre) nel ramo di sviluppo. Ora sembra che sia possibile supportare un modulo residente nella directory del fornitore.
Ho creato due esempi di installazione di moduli. Uno che copia i file in app / codice e un altro che registra il modulo in cui risiede nella directory del fornitore.
Strategia di copia: https://github.com/mttjohnson/magento2-sample-module-minimal-copy
Strategia di registrazione: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Ai fini dello sviluppo, penso che utilizzare la strategia di registrazione sia più utile perché i file che vengono eseguiti da Magento possono essere direttamente modificati, testati e ricollegati al repository del modulo.
Risposta originale
Se si dispone di un composer.json
file per il pacchetto del compositore del modulo che contiene un tipo di magento2-module
file predefinito, i file verranno copiati in una directory mappata specificata nella app/code
directory.
{
"name": "vendorname/module-name",
"type": "magento2-module",
"require": {
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"module",
"VendorName/ModuleName"
]
]
}
}
In questo esempio composer.json il nome del pacchetto del compositore vendorname/module-name
comporterà l'inserimento dei file per il pacchetto del compositore vendor/vendorname/module-name
.
Il tipo speciale di magento2-module
è implementato come plug -in compositore nel pacchetto magento / magento-compositore-installer . Ecco perché l'ho elencato nella sezione richiesta. È questo plug-in compositore che esegue la copia dei file nella app/code
directory magento appropriata .
La extra: {map: [["composerDir","MagentoDir"]]}
sezione fa riferimento al programma di installazione del plug-in del compositore per sapere quale parte del pacchetto del compositore associare a quale parte della struttura della directory di magento. Nell'esempio fornito questo richiederebbe vendor/vendorname/module-name/module
e copierebbe i file da lì a app/code/VendorName/ModuleName
.