Onde criar extensões personalizadas para Magento2?

9

Alguns artigos incentivam a criar extensões personalizadas app/codee outros incentivam a criá-las vendor. Esses dois métodos estão bem?

E se eu quiser substituir um módulo vendor? Preciso escrever meu módulo personalizado também dentro da vendorpasta ou app/code?

Eles agem como códigos de código como no Magento 1.x?

Por favor, alguém esclarecer o objetivo de cada diretório.

Sukeshini
fonte
Segundo a mim, precisamos torná-lo no aplicativo / código.
Arjun

Respostas:

7

Você pode olhar para as pastas app/codee vendorcomo os códigos de código no M1, mas eles não são realmente códigos de código.
Não há conceito de "conjunto de códigos" no M1.

  • vendorA pasta é para módulos que você baixa por meio do compositor. Você não deve escrever código nessa pasta.
  • app/codeé o seu playground. Adicione suas próprias extensões aqui.

Se você precisar reescrever / estender algo na vendorpasta, poderá fazê-lo na app/codepasta. Apenas certifique-se de especificar a dependência virtual no module.xmlseu módulo, da mesma maneira que você fez no app/etc/modules/Namespace_Module.xmlarquivo M1 .
A única diferença é que em m2 eles não são realmente dependências. São sequências.
Dessa forma, seu módulo será carregado após o da vendorpasta

Marius
fonte
Não é inteiramente verdade. Se você instalar M2 via github app/codenão é um playground;)
Raphael em Digital pianismo
@ Marius: Muito obrigado. Limpou a dúvida que eu tinha. Se você deseja substituir o XMarquivo L em um módulo de fornecedor, ainda precisamos mencionar as dependências module.xml ?
Sukeshini 13/07/2016
@RaphaelatDigitalPianism. Sim e não. Você obtém os módulos principais app/codenesse caso, mas ainda pode adicionar seus próprios módulos. E a única razão pela qual você deve instalar o m2 via github é brincar com ele e / ou contribuir com ele. Então, tecnicamente, ainda faz o app/codeseu playground.
Marius
@Sukeshini. Não tenho certeza, mas acho que você deveria.
Marius
@Marius concordou w / tudo o que você disse que eu teria apenas disse app/code/Vendoré seu playground assim não há risco de quebrar o material do núcleo
Raphael em Digital pianismo
2

app/code é definitivamente o lugar certo para os módulos do seu projeto.

Você nunca deve escrever código dentro vendor(este diretório não é ignorado no seu controle de origem), pois é gerenciado apenas pelo compositor e é dedicado ao módulo ou módulo de terceiros que você deseja reutilizar (e você publicou no packagist ou no seu próprio repositório satisf )

Aurélien FOUCRET
fonte