Desarrollo de modules ZF2: host usando GIT y Composer

Estoy desarrollando modules para ZF2, los modules individuales están alojados en su propio espacio de repository, aquí está mi estructura

module |__ User |___ config |___ src |___ Module.php |___ composer.json |___ .git __ Theme |___ config |___ src |___ Module.php |___ composer.json |___ .git 

User Módulo de User está alojado en bitbucket.org/example/user , el Theme está alojado en bitbucket.org/example/theme y así sucesivamente.

El module de usuario tiene dependencia con DoctrineORMModule , cuando incluyo la dependencia usando composer.json Crea el directory del proveedor dentro del module e instala los files, aquí está la estructura del directory después de agregar la dependencia en composer.json del module de usuario.

 module |__ User |___ config |___ src |___ vendor |___ Module.php |___ composer.json |___ .git __ Theme |___ config |___ src |___ Module.php |___ composer.json |___ .git 

Si notó que agregó un directory de proveedores dentro del module de usuario, ¿es normal seguir este enfoque para el desarrollo? Esperaba que el module dependiente fuera instalado / copydo en el directory de proveedores raíz y no en el directory de modules, el problema para mí con este enfoque es que no quiero que el proveedor esté dentro del directory del module, así si tengo una dependencia compartida se duplicará en múltiples directorys? ¿Cuál es el mejor desarrollo de múltiples modules en ZF2?

Gracias.

Creo que esta pregunta ya tiene muchas respuestas aquí: Cómo escribir un progtwig / module de proveedor para ZFT

Básicamente, no colocaría los packages del compositor en la carpeta de los modules , sino que dejaría que Composer los incluyera en el directory del vendor . Esto hará que la installation de una dependencia de modules sea innecesaria, ya que todas las dependencies serán abordadas de una sola vez por Composer para la aplicación principal.

La edición de los packages es principalmente una cuestión de lo que funciona bien: puede ser feliz utilizando la composer update --prefer-source , que composer update --prefer-source los repositorys de git en las carpetas, y podrá trabajar con ellos allí. Alternativamente, puede aplicar cualquier método que desee, como el uso de enlaces simbólicos, etc., si desea tener estos repositorys en cualquier otro lugar. El compositor no le importará: si encuentra el repository dentro de la ruta, lo usará.

Sin embargo, tenga en count que podría ser peligroso si ejecuta la actualización sin cuidado y sin comprometer todo.

Además, podría ser un problema si olvida save un file importante; funcionará en su máquina, porque el file está allí, pero no está en el repository, por lo que se perderá en cualquier otro lugar.