Algunos artículos animan a crear extensiones personalizadas en app/codey otros animan a crearlas en vendor. ¿Están bien estos dos métodos?
¿Qué sucede si quiero anular un módulo vendor? ¿Necesito escribir mi módulo personalizado también dentro de la vendorcarpeta o app/code?
¿Actúan como codepools como en Magento 1.x?
Por favor, alguien aclare el propósito de cada directorio.
magento2
magento-2.1
extensions
Sukeshini
fuente
fuente

Respuestas:
Puede mirar las carpetas
app/codeyvendorlos grupos de códigos en M1, pero en realidad no son grupos de códigos.No hay un concepto de "codepool" en M1.
vendorLa carpeta es para los módulos que descargas a través del compositor. No debe escribir código en esa carpeta.app/codeEs tu patio de recreo. Agregue sus propias extensiones aquí.Si necesita reescribir / extender algo en la
vendorcarpeta, puede hacerlo en laapp/codecarpeta. Solo asegúrese de especificar la dependencia de softwaremodule.xmlde su módulo, de la misma manera que lo hizo en M1 en elapp/etc/modules/Namespace_Module.xmlarchivo.La única diferencia es que en m2 no son realmente dependencias. Son secuencias.
De esta manera, su módulo se cargará después del de la
vendorcarpetafuente
app/codeno es un patio de recreo;)XMarchivo L en un módulo de proveedor, ¿aún tenemos que mencionar las dependencias enmodule.xml?app/codeen ese caso, pero aún puede agregar sus propios módulos. Y la única razón por la que debe instalar m2 a través de github es jugar con él y / o contribuir a él. Por lo tanto, esto técnicamente sigue siendoapp/codesu patio de recreo.app/code/Vendores tu patio de recreo, así que no hay riesgo de romper cosas centralesapp/codees definitivamente el lugar adecuado para los módulos de su proyectoNunca debe escribir código dentro
vendor(este directorio no se ignora en su control de origen), ya que es administrado solo por el compositor y está dedicado al módulo de terceros o al módulo que desea reutilizar (y ha publicado en Packagist o en su propio repositorio de satisfacción )fuente