¿Cuáles son las mejores prácticas para instalar extensiones de terceros en Magento 2?

16

Mientras trabajaba en un proyecto de cliente para Magento 2, descubrí numerosos métodos de carga y seguimiento de extensiones de terceros.

Al asumir que estamos utilizando el método de instalación del integrador (¡compositor!), ¿Cuáles son las mejores prácticas para administrar extensiones de terceros?

Hasta ahora, cada extensión que he comprado o descargado ha tenido su propio archivo composer.json, y conozco al menos tres formas diferentes en que los autores de extensiones recomendarían instalar su extensión:

  1. Copie estos archivos en la aplicación / código
  2. Copie este zip en la carpeta, agréguelo como un repositorio de artefactos y solicítelo
  3. Agregue este repositorio en línea (con / sin autenticación) y solicítelo

Hasta ahora, me he encontrado con 1 y 2 y sospecho que existe el n. ° 3. Pero luego, al notar que los que sugirieron # 1 descubrí que puedes tener un repositorio de "ruta", moví mis extensiones de la aplicación / código a la misma carpeta en la que decidí colocar estos artefactos, y así lo requirí.

En este proceso, la configuración de mis repositorios se parece a:

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

Entonces mi pregunta para usted es: ¿cuál es la mejor práctica aquí? ¿Cómo se gestionan las extensiones de terceros?

Hasta ahora creo que la forma en que lo estoy haciendo es la mejor manera, aunque solo sea porque su composer.json se lee y cualquier conflicto de dependencia (o restricciones de la versión de PHP) se hará evidente, pero no creo que sea lo suficientemente definitivo.

Navarro
fuente

Respuestas:

8
  • Instalar el módulo a través del compositor es la mejor manera de Magento 2. Debido a que hay muchas ventajas si instalamos el módulo a través del compositor.

  • Si desea actualizar el módulo, solo necesita cambiar la versión en el composer.jsonarchivo y ejecutar el composer updatecomando en rootMagentoento.

  • Durante la instalación manual, primero debe descargar el módulo y reemplazar los archivos antiguos y ejecutar el setup:upgradecomando para actualizar el módulo.

  • Todos los módulos que se instalan a través de Composer se descargan en la carpeta del proveedor.

  • Magento utiliza la URL predeterminada https://repo.magento.com/ para descargar el módulo Si compra el módulo en Magento Marketplace.

  • Si compra un módulo del sitio web de un tercero. Debe agregar un repositorio en composer.json para descargar e instalar un módulo.

Por ejemplo

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

En mi opinión, el compositor es la mejor y más adecuada forma de instalar el módulo en Magento 2.

Instale el Módulo de terceros a través del compositor:

  1. Ejecute este comando para agregar un nuevo repositorio en conposer.json

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

  1. Ahora ejecute este comando para agregar el componente y la versión del módulo en composer.json

compositor requiere [nombre-componente]: [versión]

Forex.  composer require prince/helloword:1.0.0
  1. Ahora ejecute la actualización del compositor para descargar el módulo del repositorio.

actualización del compositor

  1. Ahora ejecute setup:upgrade para instalar y registrar el módulo enconfig.php

Configuración de php bin / magento: actualización

Príncipe Patel
fuente
1

Extrañamente, todas las respuestas pierden el punto de que ha identificado los artefactos como una posibilidad:

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

Es posible que los proveedores de módulos no tengan un repositorio que pueda usar, por lo que los artefactos son la respuesta. La mayoría (con la que me he encontrado) le dará un paquete zip para los archivos, por lo que usar eso con el compositor a través de artefactos, en mi humilde opinión, es la forma más fácil.

Por supuesto, puede presentar su propio repositorio para los archivos de módulos de terceros, pero personalmente no veo el punto de dar un paso adicional en esos.

Pensé que vale la pena mencionar si los agrega a la carpeta de la aplicación y confirma los archivos, o con su propio repositorio puede detectar fácilmente qué archivos han cambiado entre las versiones de la extensión de terceros.

De todos modos, encontré este artículo sobre el uso de los arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/, por lo que otros también están usando ese flujo.

Olli Tyynelä
fuente
-1

Hay dos formas de hacerlo. Por favor, encuentre estos a continuación.

(1) Instalación automática con compositor

Compre el producto descargado del mercado y verifique el nombre del componente a partir de la información del producto descargado y use el código de ejemplo a continuación para actualizar el archivo composer.json en la raíz de la aplicación.

Nota: No olvide incluir el archivo composer.lock para incluir en su git commit.

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

(2) Instalación manual

Descargue el archivo zip del componente de sus descargas y descomprímalo en una ubicación temporal y verifique su archivo de registro.php, allí verá el nombre del proveedor del componente y el nombre del componente. Crea una estructura de directorio similar dentro.

app/code/VendorName/ComponentName

Extraiga su archivo zip dentro de la estructura de directorios anterior y ejecute los comandos siguientes desde el directorio raíz de su aplicación para habilitar el 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/

El módulo de verificación se habilita utilizando el siguiente comando. Mostrará la lista de todos los módulos habilitados y deshabilitados.

php bin/magento module:status

¡Espero que esto ayude!

Kapil Yadav
fuente
Todavía no encontré la respuesta correcta, aunque me confundí más con esto.
Kapil Yadav
-2

He instalado extensiones para magento2 colocando la extensión debajo de la aplicación / código y el sitio web ha funcionado bien para mí, por lo que instalarlas colocando la extensión debajo de la aplicación / código es una de las formas de instalar extensiones.

Ledian Hymetllari
fuente
-2

La mejor práctica para administrar la extensión de terceros es descargar el archivo zip e importar el archivo zip dentro de la carpeta de aplicación / código y descomprimirlo.

Después de eso, use los siguientes comandos

  1. Módulo php bin / magento: habilitar _
  2. Configuración de php bin / magento: actualización
  3. php bin / magento setup: di: compile
Rishabh Rk Rai
fuente
Tenga cuidado: esta NO es una mejor práctica. app/codeNo se recomienda instalar módulos a través del uso composer. Usar en su composerlugar.
Jisse Reitsma