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:
- Copie estos archivos en la aplicación / código
- Copie este zip en la carpeta, agréguelo como un repositorio de artefactos y solicítelo
- 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.