Quali sono le migliori pratiche per l'installazione di estensioni di terze parti in Magento 2?


16

Mentre lavoravo a un progetto client per Magento 2, ho scoperto numerosi metodi per caricare e tenere traccia delle estensioni di terze parti.

Partendo da questo presupponendo che stiamo usando il metodo di installazione dell'integratore (compositore!), Quali sono le migliori pratiche per la gestione delle estensioni di terze parti?

Finora, ogni estensione che ho acquistato o scaricato ha avuto il proprio file composer.json - e conosco almeno tre modi diversi in cui gli autori dell'estensione raccomanderebbero di installare la loro estensione:

  1. Copia questi file in app / codice
  2. Copia questo zip nella cartella, aggiungilo è un repository di artefatti e lo richiede
  3. Aggiungi questo repository online (con / senza autenticazione) e richiedilo

Finora mi sono imbattuto in 1 e 2 e sono solo una specie di sospetto che esista il n. 3. Ma poi, notando che quelli che hanno suggerito il n. 1, ho scoperto che puoi avere un repository "path" - ho spostato le mie estensioni dall'app / codice nella stessa cartella, ho deciso di inserire questi artefatti e lo ho richiesto in questo modo.

In questo processo, la configurazione dei miei repository assomiglia a:

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

Quindi la mia domanda per te è: qual è la migliore pratica qui? Come gestite le estensioni di terze parti?

Finora credo che il modo in cui lo sto facendo sia il modo migliore - se non altro perché il loro composer.json viene letto e tutti i conflitti di dipendenza (o vincoli di versione PHP) diventeranno evidenti - ma non penso che sia abbastanza definitivo.

Risposte:


8
  • Installare il modulo tramite compositore è il modo migliore per Magento 2. Perché ci sono molti vantaggi se installiamo il modulo tramite compositore.

  • Se vuoi aggiornare il modulo devi solo cambiare la versione nel composer.jsonfile ed eseguire il composer updatecomando su rootMagentoento.

  • Durante l'installazione manuale è necessario prima scaricare il modulo e sostituire i vecchi file ed eseguire il setup:upgradecomando per aggiornare il modulo.

  • Tutti i moduli installati tramite il compositore vengono scaricati nella cartella del fornitore.

  • Magento utilizza l' URL https://repo.magento.com/ predefinito per scaricare il modulo Se si acquista un modulo dal Marketplace di Magento.

  • Se acquisti un modulo da un sito Web di terze parti. È necessario aggiungere un repository in composer.json per scaricare e installare un modulo.

Per esempio

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

A mio avviso, il compositore è il modo migliore e corretto per installare il modulo in Magento 2.

Installa il modulo di terze parti tramite il compositore:

  1. Eseguire questo comando per aggiungere un nuovo repository in conposer.json

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

  1. Ora esegui questo comando per aggiungere il componente e la versione del modulo in composer.json

compositore richiede [nome componente]: [versione]

Forex.  composer require prince/helloword:1.0.0
  1. Ora esegui l'aggiornamento del compositore per scaricare il modulo dal repository.

aggiornamento del compositore

  1. Ora corri setup:upgrade per installare e registrare il moduloconfig.php

php bin / magento setup: upgrade


1

Stranamente tutte le risposte mancano il punto in cui hai identificato i manufatti come una possibilità:

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

I fornitori di moduli potrebbero non avere un repository che è possibile utilizzare, pertanto gli artefatti sono la risposta. La maggior parte (che ho incontrato) ti darà un pacchetto zip per i file, quindi usarlo con il compositore tramite artefatti IMHO è il modo più semplice.

Ovviamente puoi presentare il tuo repository per i file dei moduli di terze parti, ma personalmente non vedo il punto di fare un passo in più su quelli.

Pensato che valga la pena menzionare se li aggiungi alla cartella dell'app e commetti i file o con il tuo repository puoi facilmente individuare quali file sono cambiati tra le versioni dell'estensione di terze parti.

Ad ogni modo, ho trovato questo articolo sull'uso degli arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/, così altri usano questo flusso anche.


-1

Ci sono due modi per farlo, li trovi qui sotto.

(1) Installazione automatica tramite compositore

Acquista il prodotto scaricato dal marketplace e controlla il nome del componente dalle informazioni sul prodotto scaricato e usa il codice di esempio sotto per aggiornare il file composer.json nella radice dell'applicazione.

Nota: non dimenticare di includere il file composer.lock da includere nel tuo commit git.

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

(2) Installazione manuale

Scarica il file zip del componente dai tuoi download e decomprimilo in una posizione temporanea e controlla il suo file registration.php, lì vedrai il nome del fornitore componente e il nome del componente. Crea una struttura di directory simile all'interno.

app/code/VendorName/ComponentName

Estrarre il file zip all'interno della struttura di directory sopra ed eseguire i comandi di seguito dalla directory radice dell'applicazione per abilitare il modulo.

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/

Verificare che il modulo sia abilitato utilizzando il comando seguente. Mostrerà tutto l'elenco dei moduli abilitati e disabilitati.

php bin/magento module:status

Spero che sia di aiuto!


Non ho ancora trovato la risposta corretta, anche se mi sono confuso di più.
Kapil Yadav il

-2

Ho installato le estensioni per magento2 inserendo l'estensione in app / codice e il sito Web ha funzionato bene per me, quindi installarle posizionando l'estensione in app / codice è uno dei modi per installare le estensioni!


-2

La migliore pratica per la gestione dell'estensione di terze parti è quella di scaricare il file zip e importare la cartella zip all'interno dell'app / codice e decomprimerlo.

Successivamente utilizzare i seguenti comandi

  1. modulo bin bin / magento: abilita _
  2. php bin / magento setup: upgrade
  3. php bin / magento setup: di: compilare

Attenzione: questa NON è una buona pratica. app/codeNon è consigliabile installare i moduli tramite l'utilizzo composer. Usa composerinvece.
Jisse Reitsma,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.