¿Dónde crear extensiones personalizadas para Magento2?

9

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.

Sukeshini
fuente
Según yo, debemos hacerlo en la aplicación / código.
Arjun

Respuestas:

7

Puede mirar las carpetas app/codey vendorlos 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 la app/codecarpeta. Solo asegúrese de especificar la dependencia de software module.xmlde su módulo, de la misma manera que lo hizo en M1 en el app/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 vendorcarpeta

Marius
fuente
No del todo cierto. Si instala M2 a través de github app/codeno es un patio de recreo;)
Raphael en Digital Pianism
@ Mario: Muchas gracias. Despejó la duda que tenía. Si desea anular el XMarchivo L en un módulo de proveedor, ¿aún tenemos que mencionar las dependencias en module.xml ?
Sukeshini
@RaphaelatDigitalPianism. Si y no. Obtiene los módulos principales 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 siendo app/codesu patio de recreo.
Marius
@Sukeshini. No estoy seguro, pero creo que deberías.
Marius
@Marius estuvo de acuerdo con todo lo que dijiste que acabo de decir app/code/Vendores tu patio de recreo, así que no hay riesgo de romper cosas centrales
Raphael en Digital Pianism
2

app/code es definitivamente el lugar adecuado para los módulos de su proyecto

Nunca 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 )

Aurélien FOUCRET
fuente