Де створити спеціальні розширення для 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своєму модулі так само, як ви це зробили у app/etc/modules/Namespace_Module.xmlфайлі M1 .
Різниця лише в тому, що в м2 вони насправді не є залежностями. Вони є послідовностями.
Таким чином ваш модуль буде завантажений після модуля з vendorпапки


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

@Marius: Велике спасибі Це очистило сумнів у мене. Якщо ви хочете замінити XMфайл L у модулі постачальника, чи все-таки треба згадати про залежності module.xml ?
Сукешині

@RaphaelatDigitalPianism. Так і ні. У app/codeцьому випадку ви отримуєте основні модулі , але ви все ще можете додати свої власні модулі. І єдина причина, по якій вам слід встановити м2 через github - це пограти з ним та / або внести свій внесок у нього. Тож це технічно все ще робить app/codeваш ігровий майданчик.
Маріус

@Sukeshini. Не впевнений у цьому, але я думаю, що слід.
Маріус

@Marius погодився w / все, що ви сказали, я би щойно сказав, що app/code/Vendorце ваша
дитяча

2

app/code це, безумовно, правильне місце для модулів вашого проекту.

Ніколи не слід писати код всередину vendor(цей каталог не ігнорується у вашому контролі джерела), оскільки ним керує лише композитор і призначений сторонній модуль або модуль, який ви хочете повторно використати (а ви опублікували на пакувальнику або у власному сховищі задоволення ).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.