Каковы лучшие практики для установки сторонних расширений в Magento 2?

16

Работая над клиентским проектом для Magento 2, я обнаружил множество способов загрузки и отслеживания сторонних расширений.

Если предположить, что мы используем метод установки интегратора (composer!), Каковы лучшие практики для управления сторонними расширениями?

До сих пор у каждого расширения, которое я купил или скачал, был свой собственный файл composer.json - и я знаю как минимум три различных способа, которыми авторы рекомендовали бы установить их расширение:

  1. Скопируйте эти файлы в приложение / код
  2. Скопируйте этот zip-файл в папку, добавьте его в хранилище артефактов и потребуйте его
  3. Добавить этот онлайн-репозиторий (с / без авторизации) и требовать его

До сих пор я сталкивался с 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) становятся очевидными - но я не думаю, что это достаточно определенно.

Navarr
источник

Ответы:

8
  • Установка модуля через composer - лучший способ для Magento 2. Поскольку есть много преимуществ, если мы устанавливаем модуль через composer.

  • Если вы хотите обновить модуль, вам просто нужно изменить версию в composer.jsonфайле и запустить composer updateкоманду в rootMagentoento.

  • Во время ручной установки вам необходимо сначала загрузить модуль, заменить старые файлы и запустить setup:upgradeкоманду для обновления модуля.

  • Все модули, которые устанавливаются через композитор, загружаются в папку продавца.

  • Magento использует по умолчанию https://repo.magento.com/ URL для загрузки модуля Если вы покупаете модуль в Magento Marketplace.

  • Если вы покупаете модуль со стороннего сайта. Вам нужно добавить репозиторий в composer.json для загрузки и установки модуля.

Например

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/" //Default Magento Repositry
    },
    "thirdparty-module": {
        "type": "composer",
        "url": "https://mymodule.thirdparty.com/" //Third Party Repositary
    }
},

На мой взгляд, композитор - лучший и правильный способ установки модуля в Magento 2.

Установите сторонний модуль через композитор:

  1. Запустите эту команду, чтобы добавить новый репозиторий в conposer.json

репозиторий конфигурации композитора. thirdparty-module git https://thirdparty-composer-url.com

  1. Теперь запустите эту команду, чтобы добавить компонент и версию модуля в composer.json

композитор требует [имя компонента]: [версия]

Forex.  composer require prince/helloword:1.0.0
  1. Теперь запустите обновление композитора, чтобы загрузить модуль из репозитория.

обновление композитора

  1. Теперь запустите, setup:upgrade чтобы установить и зарегистрировать модуль вconfig.php

Настройка php bin / magento: обновление

Принц Патель
источник
1

Как ни странно, во всех ответах упущено, что вы определили артефакты как одну из возможных возможностей:

https://getcomposer.org/doc/05-repositories.md#artifact

Поставщики модулей могут не иметь репо, который вы можете использовать, поэтому артефакты - это ответ. Большинство (с которым я столкнулся) даст вам zip-пакет для файлов, так что использовать его с composer через артефакты IMHO - самый простой способ.

Конечно, вы можете использовать свой собственный репозиторий для файлов модулей сторонних производителей, но лично я не вижу смысла в том, чтобы делать дополнительный шаг в этих файлах.

Думаю, стоит упомянуть, если вы добавляете их в папку приложения и фиксируете файлы, или с помощью своего собственного репозитория вы можете легко определить, какие файлы изменились между версиями стороннего расширения.

В любом случае, я нашел эту статью об использовании артефактов https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/, поэтому другие тоже используют этот поток.

Олли Тынеля
источник
-1

Есть два способа сделать это, пожалуйста, найдите их ниже.

(1) Автоматическая установка с использованием композитора

Купите продукт для скачивания с рынка и проверьте имя компонента в загруженной информации о продукте и используйте приведенный ниже пример кода для обновления файла composer.json в корне приложения.

Примечание: не забудьте включить файл composer.lock для включения в ваш git commit.

Официальная ссылка: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) Ручная установка

Загрузите zip-файл компонента из ваших загрузок и разархивируйте его во временном местоположении и проверьте его файл registration.php, там вы увидите имя поставщика и имя компонента. Создайте похожую структуру каталогов внутри.

app/code/VendorName/ComponentName

Извлеките ваш zip-файл внутри вышеуказанной структуры каталогов и выполните следующие команды из корневого каталога вашего приложения, чтобы включить модуль.

php bin/magento module:enable VendorName_ComponentName
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
php -R 777 var/

Проверьте, что модуль включен, используя команду ниже. Он покажет список всех включенных и отключенных модулей.

php bin/magento module:status

Надеюсь это поможет!

Капил Ядав
источник
Я еще не нашел правильного ответа., Но запутался в этом.
Капил Ядав
-2

Я установил расширения для magento2, поместив расширение в приложение / код, и веб-сайт работал хорошо для меня, поэтому установка их путем помещения расширения в приложение / код является одним из способов установки расширений!

Ледиан Химетлари
источник
-2

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

После этого используйте следующие команды

  1. Модуль php bin / magento: включить _
  2. Настройка php bin / magento: обновление
  3. php bin / magento setup: di: compile
Rishabh Rk Rai
источник
Имейте в виду: это НЕ лучшая практика. Установка модулей через app/codeне рекомендуется composer. Используйте composerвместо этого.
Джисс Рейтсма