Gdzie utworzyć niestandardowe rozszerzenia dla Magento2?


9

Niektóre artykuły zachęcają do tworzenia niestandardowych rozszerzeń, app/codea inne zachęcają do ich tworzenia vendor. Czy obie te metody są w porządku?

Co jeśli chcę zastąpić moduł vendor? Czy muszę pisać moduł niestandardowy również w vendorfolderze lub app/code?

Czy działają one jak codepools jak w Magento 1.x?

Prosimy o wyjaśnienie celu każdego katalogu.


Według mnie musimy zrobić to w aplikacji / kodzie.
Arjun

Odpowiedzi:


7

Możesz patrzeć na foldery app/codei vendorna pule kodowe w M1, ale tak naprawdę nie są pule kodowe.
W M1 nie ma koncepcji „codepool”.

  • vendorfolder przeznaczony jest na moduły pobierane przez kompozytora. Nie należy pisać kodu w tym folderze.
  • app/codejest twój plac zabaw. Dodaj tutaj własne rozszerzenia.

Jeśli chcesz przepisać / wydłużyć coś w vendorfolderze, możesz to zrobić w app/codefolderze. Tylko upewnij się, że określiłeś miękką zależność w module.xmlswoim module, tak samo jak zrobiłeś to w M1 w app/etc/modules/Namespace_Module.xmlpliku.
Jedyna różnica polega na tym, że w m2 nie są to tak naprawdę zależności. To są sekwencje.
W ten sposób moduł zostanie załadowany po module z vendorfolderu


Nie do końca prawda. Jeśli zainstalujesz M2 przez github, app/codeto nie jest plac zabaw;)
Raphael w Digital Pianism

@Marius: Wielkie dzięki. To rozwiało wątpliwości, które miałem. Jeśli chcesz zastąpić XMplik L w module dostawcy, czy nadal musimy wspominać o zależnościach w module.xml ?
Sukeshini,

@RaphaelatDigitalPianism. Tak i nie. W takim przypadku dostajesz moduły podstawowe app/code, ale nadal możesz dodawać własne moduły. Jedynym powodem, dla którego powinieneś zainstalować m2 poprzez github, jest zabawa i / lub wkładanie się w to. Więc to technicznie wciąż czyni app/codeTwój plac zabaw.
Marius

@Sukeshini. Nie jestem tego pewien, ale myślę, że powinieneś.
Marius

@Marius zgodził się ze wszystkim, co powiedziałem. Powiedziałbym tylko, że app/code/Vendorjest to Twój plac zabaw, więc nie ma ryzyka, że ​​złamiesz podstawowe rzeczy
Raphael at Digital Pianism,

2

app/code jest zdecydowanie właściwym miejscem dla modułów twojego projektu.

Nigdy nie wolno pisać kodu w środku vendor(ten katalog nie jest ignorowany do kontroli źródła), ponieważ jest on zarządzany tylko przez kompozytora i jest dedykowany modułowi lub modułowi strony trzeciej, którego chcesz ponownie użyć (i opublikowałeś na packagist lub własnym repozytorium satis ).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.