Работая над клиентским проектом для Magento 2, я обнаружил множество способов загрузки и отслеживания сторонних расширений.
Если предположить, что мы используем метод установки интегратора (composer!), Каковы лучшие практики для управления сторонними расширениями?
До сих пор у каждого расширения, которое я купил или скачал, был свой собственный файл composer.json - и я знаю как минимум три различных способа, которыми авторы рекомендовали бы установить их расширение:
- Скопируйте эти файлы в приложение / код
- Скопируйте этот zip-файл в папку, добавьте его в хранилище артефактов и потребуйте его
- Добавить этот онлайн-репозиторий (с / без авторизации) и требовать его
До сих пор я сталкивался с 1 & 2 и просто подозреваю, что существует # 3. Но затем, заметив, что те, кто предложил # 1, обнаружили, что у вас может быть репозиторий «пути» - я переместил свои расширения из приложения / кода в ту же папку, я решил поместить эти артефакты и потребовал это таким образом.
В этом процессе конфигурация моих репозиториев выглядит примерно так:
"repositories": {
"0": {
"type": "composer",
"url": "https://repo.magento.com/"
},
"artifacts": {
"type": "artifact",
"url": "artifacts"
},
"third-party": {
"type": "path",
"url": "artifacts/*/*"
},
},
Итак, мой вопрос к вам - какова лучшая практика здесь? Как вы управляете сторонними расширениями?
До сих пор я считаю, что то, как я это делаю, - лучший способ - хотя бы потому, что их composer.json читается и любые конфликты зависимостей (или ограничения версии PHP) становятся очевидными - но я не думаю, что это достаточно определенно.
источник
Я установил расширения для magento2, поместив расширение в приложение / код, и веб-сайт работал хорошо для меня, поэтому установка их путем помещения расширения в приложение / код является одним из способов установки расширений!
источник
Лучшая практика для управления сторонним расширением - это скачать zip-файл, импортировать zip-файл в папку app / code и распаковать его.
После этого используйте следующие команды
источник
app/code
не рекомендуетсяcomposer
. Используйтеcomposer
вместо этого.