Где создавать собственные расширения для Magento2?


9

В некоторых статьях рекомендуется создавать собственные расширения, app/codeа в других - создавать их в vendor. Оба эти метода в порядке?

Что делать, если я хочу переопределить модуль в vendor? Мне нужно написать свой пользовательский модуль также внутри vendorпапки или app/code?

Они действуют как кодовые пулы, как в Magento 1.x?

Пожалуйста, кто-нибудь уточнить назначение каждого из каталогов.


По моему мнению, нам нужно сделать это в приложении / коде.
Арджун

Ответы:


7

Вы можете посмотреть на папки app/codeи vendorкак кодовые пулы в M1, но на самом деле они не являются кодовыми пулами.
В M1 нет понятия «кодпул».

  • vendorпапка для модулей, которые вы загружаете через композитор. Вы не должны писать код в этой папке.
  • app/codeэто ваша игровая площадка. Добавьте свои собственные расширения здесь.

Если вам нужно что-то переписать / расширить в vendorпапке, вы можете сделать это в app/codeпапке. Просто убедитесь, что вы указали мягкую зависимость в module.xmlвашем модуле так же, как вы делали это в M1 в app/etc/modules/Namespace_Module.xmlфайле.
Разница лишь в том, что в м2 они на самом деле не являются зависимостями. Это последовательности.
Таким образом, ваш модуль будет загружен после того, как из vendorпапки


Не совсем верно. Если вы устанавливаете M2 через github, app/codeэто не игровая площадка;)
Рафаэль на Digital Pianism

@Marius: Большое спасибо. Это очистило мои сомнения. Если вы хотите переопределить XML-файл в модуле вендора, нужно ли нам упоминать зависимости в module.xml ?
Sukeshini

@RaphaelatDigitalPianism. Да и нет. В этом случае вы получаете основные модули app/code, но вы все равно можете добавлять свои собственные модули. И единственная причина, по которой вы должны установить m2 через github - это поиграть с ним и / или внести свой вклад в него. Так что это технически все еще делает app/codeвашу игровую площадку.
Мариус

@Sukeshini. Не уверен в этом, но я думаю, что вы должны.
Мариус

@Мариус согласился со всем, что вы сказали, я бы только сказал, что app/code/Vendorэто ваша игровая площадка, так что нет риска сломать основной материал
Рафаэль из Digital Pianism

2

app/code это определенно правильное место для модулей вашего проекта.

Вы никогда не должны писать код внутри vendor(этот каталог не игнорируется в вашем контроле исходного кода), поскольку он управляется только композитором и предназначен для стороннего модуля или модуля, который вы хотите использовать повторно (и вы опубликовали его на packagist или в своем собственном репозитории удовлетворительно). ).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.