Actualizar
Parece que varias cosas cambiaron con algunos cambios más recientes (7 de octubre) en la rama de desarrollo. Ahora parece que es posible admitir un módulo que vive en el directorio de proveedores.
Creé dos ejemplos de instalación de módulos. Uno que copia archivos a la aplicación / código y otro que registra el módulo donde reside en el directorio de proveedores.
Estrategia de copia: https://github.com/mttjohnson/magento2-sample-module-minimal-copy
Estrategia de registro: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Para fines de desarrollo, creo que utilizar la estrategia de registro es más útil porque los archivos que ejecuta Magento se pueden modificar, probar y luego volver a enviar directamente al repositorio de módulos.
Respuesta original
Si tiene un composer.jsonarchivo para su paquete de compositor de módulos que contiene un tipo de magento2-module, por defecto, los archivos se copiarán en un directorio asignado específico en el app/codedirectorio.
{
"name": "vendorname/module-name",
"type": "magento2-module",
"require": {
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"module",
"VendorName/ModuleName"
]
]
}
}
En este ejemplo, composer.json, el nombre del paquete del compositor vendorname/module-namedará como resultado que se coloquen los archivos para el paquete del compositor vendor/vendorname/module-name.
El tipo especial de magento2-modulese implementa como un complemento de compositor en el paquete magento / magento-composer-installer . Es por eso que lo he enumerado en la sección de requisitos. Es este plugin de compositor el que copia los archivos en el app/codedirectorio magento apropiado .
El extra: {map: [["composerDir","MagentoDir"]]}instalador del complemento de compositor hace referencia a esta sección para saber qué parte de su paquete de compositor se debe asignar a qué parte de su estructura de directorios de magento. En el ejemplo proporcionado, esto tomaría vendor/vendorname/module-name/moduley copiaría archivos de allí a app/code/VendorName/ModuleName.