Alguns artigos incentivam a criar extensões personalizadas app/code
e 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 vendor
pasta 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.
magento2
magento-2.1
extensions
Sukeshini
fonte
fonte
Respostas:
Você pode olhar para as pastas
app/code
evendor
como 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.
vendor
A 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
vendor
pasta, poderá fazê-lo naapp/code
pasta. Apenas certifique-se de especificar a dependência virtual nomodule.xml
seu módulo, da mesma maneira que você fez noapp/etc/modules/Namespace_Module.xml
arquivo 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
vendor
pastafonte
app/code
não é um playground;)XM
arquivo L em um módulo de fornecedor, ainda precisamos mencionar as dependênciasmodule.xml
?app/code
nesse 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 oapp/code
seu playground.app/code/Vendor
é seu playground assim não há risco de quebrar o material do núcleoapp/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 )fonte