He visto algunas cosas flotando en Internet (es decir, Twitter) que algunos cambios recientes en Magento 2 hacen posible instalar un módulo en el directorio de proveedores a través del compositor, y Magento 2 verá su módulo sin ninguna tontería de enlaces simbólicos .
Si esto es cierto, ¿hay un composer.json
archivo "mínimo " flotando para que los desarrolladores de módulos utilicen con sus módulos para permitir que los usuarios de Magento 2 los instalen en sus sistemas?
Respuestas:
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 demagento2-module
, por defecto, los archivos se copiarán en un directorio asignado específico en elapp/code
directorio.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 compositorvendor/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 elapp/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íavendor/vendorname/module-name/module
y copiaría archivos de allí aapp/code/VendorName/ModuleName
.fuente
Parece que algo como esto debería hacer el truco.
La clave aquí es la sección del autocargador. Configura un autocargador PSR-4 que apunta a los archivos de tu clase y carga automáticamente tu
registration.php
. Cuando el compositor coloca los archivos en el proveedor y vuelve a generar los archivos de carga automática, Magento debería poder ver su módulo.Un buen efecto secundario de esto: ¡el código ya no necesita estar
app/code
!fuente