Was sind die Best Practices für die Installation von Erweiterungen von Drittanbietern in Magento 2?

16

Während der Arbeit an einem Client-Projekt für Magento 2 habe ich zahlreiche Methoden zum Laden und Verfolgen von Erweiterungen von Drittanbietern entdeckt.

Unter der Annahme, dass wir die Integrator-Installationsmethode (Composer!) Verwenden, was sind die Best Practices für die Verwaltung von Erweiterungen von Drittanbietern?

Bisher hatte jede Erweiterung, die ich gekauft oder heruntergeladen habe, eine eigene composer.json-Datei - und ich kenne mindestens drei verschiedene Möglichkeiten, wie Autoren von Erweiterungen empfehlen würden, ihre Erweiterung zu installieren:

  1. Kopieren Sie diese Dateien in App / Code
  2. Kopieren Sie diese Zip-Datei in einen Ordner, fügen Sie hinzu, dass es sich um ein Artefakt-Repository handelt, und fordern Sie es an
  3. Fügen Sie dieses Online-Repository (mit / ohne Authentifizierung) hinzu und fordern Sie es an

Bisher bin ich auf 1 & 2 gestoßen und habe nur den Verdacht, dass # 3 existiert. Aber als ich dann bemerkte, dass diejenigen, die Nr. 1 vorschlugen, herausfanden, dass Sie ein "Pfad" -Repository haben können, verschob ich meine Erweiterungen von App / Code in denselben Ordner, für den ich mich entschied, diese Artefakte zu platzieren, und verlangte es auf diese Weise.

In diesem Prozess sieht meine Repository-Konfiguration ungefähr so ​​aus:

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

Meine Frage an Sie lautet also: Was ist hier die beste Vorgehensweise? Wie verwalten Sie Erweiterungen von Drittanbietern?

Bisher glaube ich, dass die Art und Weise, wie ich das mache, die beste ist - schon deshalb, weil ihre composer.json gelesen wird und alle Abhängigkeitskonflikte (oder PHP-Versionsbeschränkungen) offensichtlich werden -, aber ich denke nicht, dass das definitiv genug ist.

Navarr
quelle

Antworten:

8
  • Das Installieren des Moduls über Composer ist der beste Weg zu Magento 2. Denn es gibt viele Vorteile, wenn wir das Modul über Composer installieren.

  • Wenn Sie das Modul aktualisieren möchten, müssen Sie nur die Version in der composer.jsonDatei ändern und den composer updateBefehl im rootMagento ausführen.

  • Während der manuellen Installation müssen Sie zuerst das Modul herunterladen und alte Dateien ersetzen und den setup:upgradeBefehl ausführen , um das Modul zu aktualisieren.

  • Alle Module, die über Composer installiert werden, werden in den Vendor-Ordner heruntergeladen.

  • Magento verwendet die Standard- URL https://repo.magento.com/ zum Herunterladen des Moduls. Wenn Sie ein Modul vom Magento Marketplace kaufen.

  • Wenn Sie ein Modul von der Website eines Drittanbieters kaufen. Sie müssen ein Repository in composer.json hinzufügen, um ein Modul herunterzuladen und zu installieren.

Beispielsweise

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

Meiner Meinung nach ist Composer der beste und richtige Weg, um ein Modul in Magento 2 zu installieren.

Installieren Sie Third Party Module über Composer:

  1. Führen Sie diesen Befehl aus, um ein neues Repository in conposer.json hinzuzufügen

composer config repositories.thirdparty-module git https://thirdparty-composer-url.com

  1. Führen Sie nun diesen Befehl aus, um die Komponente und die Version des Moduls in composer.json hinzuzufügen

Komponist benötigen [Komponentenname]: [Version]

Forex.  composer require prince/helloword:1.0.0
  1. Führen Sie nun das Composer-Update aus , um das Modul aus dem Repository herunterzuladen.

Komponisten-Update

  1. Führen Sie nun den Befehl aus setup:upgrade , um das Modul zu installieren und zu registrierenconfig.php

PHP bin / Magento Setup: Upgrade

Prinz Patel
quelle
1

Seltsamerweise übersehen alle Antworten den Punkt, dass Sie die Artefakte als eine Möglichkeit identifiziert haben:

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

Modulanbieter verfügen möglicherweise nicht über ein Repo, das Sie verwenden können, sodass Artefakte die Antwort sind. Die Mehrheit (auf die ich gestoßen bin) gibt Ihnen ein Zip-Paket für die Dateien, sodass die Verwendung mit Composer über Artefakte IMHO der einfachste Weg ist.

Natürlich können Sie Ihr eigenes Repo für die Dateien der Module von Drittanbietern bereitstellen, aber ich persönlich sehe keinen Grund, diesen zusätzlichen Schritt zu tun.

Erwähnenswert ist jedoch, ob Sie sie zum App-Ordner hinzufügen und die Dateien festschreiben oder mit Ihrem eigenen Repository leicht feststellen können, welche Dateien sich zwischen den Versionen der Drittanbietererweiterung geändert haben.

Wie auch immer, ich habe diesen Artikel über die Verwendung der Arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/ gefunden, so dass auch andere diesen Flow verwenden.

Olli Tyynelä
quelle
-1

Es gibt zwei Möglichkeiten, dies zu tun. Bitte finden Sie diese unten.

(1) Automatische Installation mit dem Composer

Kaufen Sie das heruntergeladene Produkt vom Marktplatz und überprüfen Sie den Namen der Komponente anhand der heruntergeladenen Produktinformationen. Verwenden Sie den folgenden Beispielcode, um die Datei composer.json im Anwendungsstamm zu aktualisieren .

Hinweis: Vergessen Sie nicht, die Datei composer.lock einzuschließen, um sie in Ihr git-Commit aufzunehmen.

Offizielle Referenz: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) Manuelle Installation

Laden Sie die ZIP-Datei der Komponente von Ihren Downloads herunter und entpacken Sie sie an einem temporären Speicherort. Überprüfen Sie die Datei registration.php. Dort werden der Name des Herstellers und der Name der Komponente angezeigt. Erstellen Sie eine ähnliche Verzeichnisstruktur.

app/code/VendorName/ComponentName

Extrahieren Sie Ihre ZIP-Datei in der obigen Verzeichnisstruktur und führen Sie die folgenden Befehle aus Ihrem Anwendungsstammverzeichnis aus, um das Modul zu aktivieren.

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/

Überprüfen Sie mit dem folgenden Befehl, ob das Modul aktiviert ist. Es werden alle aktivierten und deaktivierten Module aufgelistet.

php bin/magento module:status

Hoffe das hilft!

Kapil Yadav
quelle
Ich habe noch keine richtige Antwort gefunden.
Kapil Yadav
-2

Ich habe Erweiterungen für magento2 installiert, indem ich die Erweiterung unter App / Code platziert habe, und die Website hat gut funktioniert. Die Installation dieser Erweiterungen unter App / Code ist also eine Möglichkeit, Erweiterungen zu installieren!

Ledian Hymetllari
quelle
-2

Die beste Methode zum Verwalten der Erweiterung eines Drittanbieters besteht darin, die ZIP-Datei herunterzuladen, die ZIP-Datei im App- / Code- Ordner zu importieren und zu entpacken.

Verwenden Sie danach die folgenden Befehle

  1. PHP Bin / Magento Modul: _ aktivieren
  2. PHP bin / Magento Setup: Upgrade
  3. php bin / magento setup: di: compile
Rishabh Rk Rai
quelle
Seien Sie gewarnt: Dies ist KEINE bewährte Vorgehensweise. Die Installation von Modulen über app/codeist nicht zu empfehlen composer. Verwenden Sie composerstattdessen.
Jisse Reitsma