Algunos artículos animan a crear extensiones personalizadas en app/code
y 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 vendor
carpeta 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/code
yvendor
los grupos de códigos en M1, pero en realidad no son grupos de códigos.No hay un concepto de "codepool" en M1.
vendor
La carpeta es para los módulos que descargas a través del compositor. No debe escribir código en esa carpeta.app/code
Es tu patio de recreo. Agregue sus propias extensiones aquí.Si necesita reescribir / extender algo en la
vendor
carpeta, puede hacerlo en laapp/code
carpeta. Solo asegúrese de especificar la dependencia de softwaremodule.xml
de su módulo, de la misma manera que lo hizo en M1 en elapp/etc/modules/Namespace_Module.xml
archivo.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
vendor
carpetafuente
app/code
no es un patio de recreo;)XM
archivo L en un módulo de proveedor, ¿aún tenemos que mencionar las dependencias enmodule.xml
?app/code
en 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/code
su patio de recreo.app/code/Vendor
es tu patio de recreo, así que no hay riesgo de romper cosas centralesapp/code
es 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