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:
- Copie esses arquivos no aplicativo / código
- Copie esse zip na pasta, inclua-o como um repositório de artefatos e exija-o
- 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.