Quais são as práticas recomendadas para instalar extensões de terceiros no Magento 2?

16

Enquanto trabalhava em um projeto de cliente para o Magento 2 - descobri vários métodos de carregamento e acompanhamento de extensões de terceiros.

Entrando nisso, assumindo que estamos usando o método de instalação do integrador (compositor!), Quais são as práticas recomendadas para gerenciar extensões de terceiros?

Até o momento, todas as extensões que eu comprei ou baixei tiveram seu próprio arquivo composer.json - e conheço pelo menos três maneiras diferentes que os autores recomendam para instalar sua extensão:

  1. Copie esses arquivos no aplicativo / código
  2. Copie esse zip na pasta, inclua-o como um repositório de artefatos e exija-o
  3. Adicione este repositório online (com / sem autenticação) e exija-o

Até agora, me deparei com o 1 e o 2 e sou apenas uma espécie de suspeita de que o número 3 existe. Mas então, percebendo que aqueles que sugeriram o número 1, achei que você pode ter um repositório "path" - movi minhas extensões do aplicativo / código para a mesma pasta que decidi colocar esses artefatos e exigi-lo dessa maneira.

Nesse processo, minha configuração de repositórios se parece com:

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

Então, minha pergunta para você é: qual é a melhor prática aqui? Como você gerencia extensões de terceiros?

Até agora, acredito que a maneira como faço é a melhor - mesmo que o compositer.json seja lido e quaisquer conflitos de dependência (ou restrições de versão do PHP) se tornem aparentes - mas não acho que seja definitivo o suficiente.

Navarr
fonte

Respostas:

8
  • Instalar o módulo via compositor é a melhor maneira de Magento 2. Porque existem muitas vantagens se instalarmos o módulo via compositor.

  • Se você deseja atualizar o módulo, basta alterar a versão no composer.jsonarquivo e executar o composer updatecomando no rootMagentoento.

  • Enquanto estiver na instalação manual, você precisa primeiro fazer o download do módulo e substituir os arquivos antigos e executar o setup:upgradecomando para atualizar o módulo.

  • Todos os módulos que são instalados via compositor são baixados na pasta do fornecedor.

  • O Magento usa a URL https://repo.magento.com/ padrão para fazer o download do módulo Se você adquirir o módulo no Magento Marketplace.

  • Se você adquirir o módulo em um site de terceiros. Você precisa adicionar um repositório no composer.json para baixar e instalar um módulo.

Por exemplo

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

Na minha opinião, o compositor é a melhor e adequada maneira de instalar o módulo no Magento 2.

Instale o módulo de terceiros via compositor:

  1. Execute este comando para adicionar novo repositório no conposer.json

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

  1. Agora execute este comando para adicionar o componente e a versão do módulo no compositer.json

o compositor exige [nome do componente]: [versão]

Forex.  composer require prince/helloword:1.0.0
  1. Agora execute a atualização do compositor para baixar o módulo do repositório.

atualização do compositor

  1. Agora execute setup:upgrade para instalar e registrar o módulo noconfig.php

php bin / magento setup: atualização

Prince Patel
fonte
1

Estranhamente, todas as respostas perdem o ponto em que você identificou os artefatos como uma possibilidade:

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

Os fornecedores de módulos podem não ter um repositório que você possa usar, portanto os artefatos são a resposta. A maioria (que encontrei) fornecerá um pacote zip para os arquivos, portanto, usando o compositor por meio de artefatos IMHO é a maneira mais fácil.

Claro que você pode apresentar seu próprio repositório para os arquivos dos módulos de terceiros, mas, pessoalmente, não vejo sentido em dar um passo extra neles.

Vale a pena mencionar se você os adiciona à pasta do aplicativo e confirma os arquivos, ou com seu próprio repositório, você pode identificar facilmente quais arquivos foram alterados entre as versões da extensão de terceiros.

De qualquer forma, encontrei este artigo sobre o uso dos arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/, para que outros usuários também usem esse fluxo.

Olli Tyynelä
fonte
-1

Existem duas maneiras de fazer isso. Encontre estas abaixo.

(1) Instalação automática usando o compositor

Compre o produto para download no marketplace e verifique o nome do componente nas informações do produto baixado e use o código de exemplo abaixo para atualizar o arquivo composer.json na raiz do aplicativo.

Nota: Não esqueça de incluir o arquivo composer.lock para incluir no seu commit do git.

Referência oficial: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) Instalação manual

Faça o download do arquivo zip do componente a partir dos seus downloads e descompacte em um local temporário e verifique o arquivo registration.php; lá você verá o nome do fornecedor do componente e o nome do componente. Crie uma estrutura de diretórios semelhante dentro.

app/code/VendorName/ComponentName

Extraia seu arquivo zip dentro da estrutura de diretórios acima e execute os comandos abaixo no diretório raiz do aplicativo para ativar o módulo.

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/

O módulo de verificação é ativado usando o comando abaixo. Ele mostrará a lista de todos os módulos ativados e desativados.

php bin/magento module:status

Espero que isto ajude!

Kapil Yadav
fonte
Ainda não encontrei a resposta correta., Embora tenha ficado mais confuso com isso.
Kapil Yadav
-2

Instalei extensões para o magento2 colocando a extensão em app / code e o site tem funcionado bem para mim, então instalá-las colocando a extensão em app / code é uma das maneiras de instalar extensões!

Ledian Hymetllari
fonte
-2

A melhor prática para gerenciar a extensão de terceiros é fazer o download do arquivo zip e importar o zip dentro da pasta app / code e descompactá-lo.

Depois disso, use os seguintes comandos

  1. php bin / magento module: ativar _
  2. php bin / magento setup: atualização
  3. configuração do bin / magento do php: di: compile
Rishabh Rk Rai
fonte
Esteja avisado: essa NÃO é uma prática recomendada. app/codeNão é recomendável instalar módulos via composer. Use em composervez disso.
Jisse Reitsma