Jakie są najlepsze praktyki instalowania rozszerzeń stron trzecich w Magento 2?

16

Pracując nad projektem klienta dla Magento 2 - odkryłem wiele metod ładowania i śledzenia rozszerzeń innych firm.

Przechodząc do tego, zakładając, że używamy metody instalacji integratora (kompozytor!), Jakie są najlepsze praktyki zarządzania rozszerzeniami stron trzecich?

Do tej pory każde rozszerzenie, które kupiłem lub pobrałem, miało swój własny plik composer.json - i znam co najmniej trzy różne sposoby, w których autorzy rozszerzeń zalecają zainstalowanie ich rozszerzenia:

  1. Skopiuj te pliki do aplikacji / kodu
  2. Skopiuj ten zip do folderu, dodaj go jako repozytorium artefaktów i wymagaj go
  3. Dodaj to repozytorium online (z / bez autoryzacji) i wymagaj tego

Do tej pory natknąłem się na 1 i 2 i podejrzewam, że istnieje # 3. Ale potem, zauważając, że te, które sugerują nr 1, stwierdziłem, że możesz mieć repozytorium „ścieżki” - przeniosłem moje rozszerzenia z aplikacji / kodu do tego samego folderu, postanowiłem umieścić te artefakty i wymagałem tego w ten sposób.

W tym procesie konfiguracja moich repozytoriów wygląda mniej więcej tak:

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/"
    },
    "artifacts": {
        "type": "artifact",
        "url": "artifacts"
    },
    "third-party": {
        "type": "path",
        "url": "artifacts/*/*"
    },
},

Więc moje pytanie do Ciebie brzmi - jaka jest tutaj najlepsza praktyka? Jak zarządzasz rozszerzeniami stron trzecich?

Do tej pory uważam, że sposób, w jaki to robię, jest najlepszym sposobem - choćby dlatego, że ich composer.json zostanie odczytany, a wszelkie konflikty zależności (lub ograniczenia wersji PHP) staną się widoczne - ale nie sądzę, aby było to wystarczająco definitywne.

Navarr
źródło

Odpowiedzi:

8
  • Instalowanie modułu za pomocą kompozytora jest najlepszym sposobem na Magento 2. Ponieważ instalacja modułu za pomocą kompozytora ma wiele zalet.

  • Jeśli chcesz zaktualizować moduł, wystarczy zmienić wersję w composer.jsonpliku i uruchomić composer updatepolecenie w rootMagentoento.

  • Podczas ręcznej instalacji musisz najpierw pobrać moduł i wymienić stare pliki oraz uruchomić setup:upgradepolecenie, aby zaktualizować moduł.

  • Wszystkie moduły instalowane przez kompozytora są pobierane w folderze dostawcy.

  • Magento używa domyślnego adresu URL https://repo.magento.com/ do pobrania modułu W przypadku zakupu modułu z Magento Marketplace.

  • Jeśli kupisz moduł ze strony internetowej innej firmy. Musisz dodać repozytorium w pliku composer.json, aby pobrać i zainstalować moduł.

Na przykład

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

Moim zdaniem kompozytor jest najlepszym i właściwym sposobem zainstalowania modułu w Magento 2.

Zainstaluj moduł strony trzeciej za pomocą kompozytora:

  1. Uruchom to polecenie, aby dodać nowe repozytorium w pliku conposer.json

repozytoria konfiguracji kompozytora.thirdparty-module git https://thirdparty-composer-url.com

  1. Teraz uruchom to polecenie, aby dodać komponent i wersję modułu do pliku composer.json

kompozytor wymaga [nazwa komponentu]: [wersja]

Forex.  composer require prince/helloword:1.0.0
  1. Teraz uruchom aktualizację kompozytora, aby pobrać moduł z repozytorium.

aktualizacja kompozytora

  1. Teraz uruchom, setup:upgrade aby zainstalować i zarejestrować modułconfig.php

konfiguracja php bin / magento: aktualizacja

Książę Patel
źródło
1

Co dziwne, wszystkie odpowiedzi pomijają punkt, w którym zidentyfikowaliście artefakty jako jedną z możliwości:

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

Dostawcy modułów mogą nie mieć repozytorium, którego można użyć, więc artefakty są odpowiedzią. Większość (którą natknąłem się) da ci pakiet zip do plików, więc użycie go z kompozytorem za pomocą artefaktów IMHO jest najłatwiejszym sposobem.

Oczywiście możesz udostępnić własne repozytorium dla plików modułów stron trzecich, ale osobiście nie widzę sensu, aby robić na nich dodatkowy krok.

Pomyśl, że warto wspomnieć, jeśli dodasz je do folderu aplikacji i zatwierdzisz pliki, lub dzięki własnemu repozytorium możesz łatwo zauważyć, które pliki zmieniły się między wersjami rozszerzenia trzeciej strony.

W każdym razie znalazłem ten artykuł na temat korzystania z arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/, więc inni również używają tego przepływu.

Olli Tyynelä
źródło
-1

Można to zrobić na dwa sposoby, znajdź je poniżej.

(1) Instalacja automatyczna przy użyciu kompozytora

Kup produkt do pobrania z rynku i sprawdź nazwę komponentu z pobranych informacji o produkcie i użyj poniższego przykładowego kodu do aktualizacji pliku composer.json w katalogu głównym aplikacji.

Uwaga: Nie zapomnij o dołączeniu pliku composer.lock do git commit.

Oficjalny numer referencyjny: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) Instalacja ręczna

Pobierz plik zip komponentu z pobranych plików i rozpakuj go w tymczasowej lokalizacji i sprawdź, czy jest to plik register.php, tam zobaczysz nazwę dostawcy Compoent i nazwę komponentu. Utwórz podobną strukturę katalogów w środku.

app/code/VendorName/ComponentName

Wyodrębnij plik zip wewnątrz powyższej struktury katalogów i uruchom poniższe polecenia z katalogu głównego aplikacji, aby włączyć moduł.

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/

Sprawdź, czy moduł jest włączony za pomocą poniższego polecenia. Wyświetli listę wszystkich włączonych i wyłączonych modułów.

php bin/magento module:status

Mam nadzieję że to pomoże!

Kapil Yadav
źródło
Nie znalazłem jeszcze poprawnej odpowiedzi., Ale byłem bardziej zdezorientowany.
Kapil Yadav
-2

Zainstalowałem rozszerzenia dla magento2, umieszczając rozszerzenie pod aplikacją / kodem, a strona działała dla mnie dobrze, więc zainstalowanie ich przez umieszczenie rozszerzenia pod aplikacją / kodem jest jednym ze sposobów instalowania rozszerzeń!

Ledian Hymetllari
źródło
-2

Najlepszą praktyką w zarządzaniu rozszerzeniem strony trzeciej jest pobranie pliku zip i zaimportowanie pliku zip do folderu aplikacji / kodu i rozpakowanie go.

Następnie użyj następujących poleceń

  1. moduł php bin / magento: włącz _
  2. konfiguracja php bin / magento: aktualizacja
  3. konfiguracja php bin / magento: di: compile
Rishabh Rk Rai
źródło
Uwaga: NIE jest to najlepsza praktyka. app/codeNie zaleca się instalowania modułów za pomocą composer. Użyj composerzamiast tego.
Jisse Reitsma