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.json
archivo 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/code
directorio.
{
"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-name
dará como resultado que se coloquen los archivos para el paquete del compositor vendor/vendorname/module-name
.
El tipo especial de magento2-module
se 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/code
directorio 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/module
y copiaría archivos de allí a app/code/VendorName/ModuleName
.