Які найкращі практики встановлення сторонніх розширень у Magento 2?


16

Працюючи над клієнтським проектом для Magento 2 - я виявив численні методи завантаження та відстеження сторонніх розширень.

Звертаючись до цього, припускаючи, що ми використовуємо метод установки інтегратора (композитор!), Які найкращі практики управління розширеннями сторонніх розробників?

Поки що кожне розширення, яке я придбав чи завантажив, мав власний файл 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) стануть очевидними - але я не думаю, що це досить остаточно.

Відповіді:


8
  • Встановлення модуля за допомогою композитора - найкращий шлях до Magento 2. Оскільки є багато переваг, якщо ми встановимо модуль через композитор.

  • Якщо ви хочете оновити модуль, вам просто потрібно змінити версію у 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

композитор config repositories.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 для файлів, тому використання композитора за допомогою артефактів IMHO - це найпростіший спосіб.

Звичайно, ви можете вказати своє власне репо для файлів сторонніх модулів, але особисто я не бачу сенсу робити додатковий крок для них.

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

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


-1

Є два способи зробити це. Будь ласка, знайдіть їх нижче.

(1) Автоматична установка за допомогою композитора

Придбайте завантажений продукт з ринку та перевірте ім'я компонента з завантаженої інформації про продукт та скористайтеся нижче прикладом коду для оновлення файлу composer.json у корені програми.

Примітка. Не забудьте включити файл composer.lock, щоб включити його до git-комітету.

Офіційна довідка: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) Установка вручну

Завантажте компонентний zip-файл зі своїх завантажень та розпакуйте у тимчасовому місці та перевірте, чи це файл registration.php, там ви побачите ім'я постачальника компонента та ім'я компонента. Створіть подібну структуру каталогу всередині.

app/code/VendorName/ComponentName

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

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-файл та імпортувати поштовий індекс у папку програми / коду та розпакувати його.

Після цього використовуйте наступні команди

  1. модуль php bin / magento: увімкнути _
  2. Налаштування php bin / magento: оновлення
  3. налаштування php bin / magento: di: compile

Попереджуйте: це НЕ найкраща практика. Встановлення модулів через app/codeне рекомендується використовувати composer. Використовуйте composerзамість цього.
Jisse Reitsma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.