Sugerencias y trucos del compositor

Puede encontrar problemas al desarrollar módulos Adobe Commerce con Composer. Estas prácticas recomendadas describen algunas tareas comunes para facilitar el desarrollo y ayudarle a resolver problemas rápidamente.

NOTE
Estas directrices se aplican principalmente a arquitectura de referencia global (GRA) proyectos.

Acelere el uso de Composer

Instalar https://github.com/hirak/prestissimo para acelerar las descargas de paquetes asincrónicos de Composer.

composer global require hirak/prestissimo

Si tiene problemas, desinstale prestissimo:

composer global remove hirak/prestissimo

Resolver problemas de versiones imprecisos

Composer a veces se bloquea con las versiones de paquetes. Puede ver mensajes sobre versiones que son incompatibles, aunque no lo sean. Antes de depurar los problemas de compatibilidad, intente restablecer el Compositor:

  1. Borre la memoria caché del Compositor.

    code language-bash
    composer clearcache
    
  2. Retire el composer.lock para todos los paquetes.

    code language-bash
    rm -rf vendor/* composer.lock
    
  3. Vuelva a instalar los paquetes de Composer.

    code language-bash
    composer install
    
TIP
Estos pasos actualizan todos los paquetes a la última versión disponible. Revertir el composer.lock de Git para deshacer estas actualizaciones.

Buscar posibles actualizaciones en los paquetes de cliente

  1. Averigüe qué paquetes pueden estar obsoletos.

    code language-bash
    composer outdated
    
  2. Filtre usando caracteres comodín o el --minor-only para omitir actualizaciones incompatibles con versiones anteriores:

    code language-bash
    composer outdated 'magento/*'
    composer outdated --minor-only 'magento/*'
    

Averiguar si hay un módulo instalado

Ver detalles acerca de todos los paquetes instalados en una rama Git.

composer info

Ejecutar composer install después de cambiar las ramas de Git y antes de ejecutar composer info. De lo contrario, Composer muestra los detalles de la rama anterior que se ha extraído.

TIP
Para filtrar o buscar, utilice uno de los siguientes comandos.
code language-bash
composer info '*magento*'
composer info | grep magento

Descubra por qué está instalado un paquete (versión específica de a)

A veces, Composer instala la última versión disponible de un paquete debido a una dependencia estricta en otro paquete.

Averigüe si hay una dependencia estricta en otro paquete.

composer why client/module-example

Si los resultados muestran una lista de metapaquetes u otro paquete que no sea explícitamente necesario, ejecute el comando en ese paquete:

composer why example/metapackage

Averiguar por qué no se instala un paquete

A veces, Composer no instala un paquete porque entra en conflicto con otro paquete, otro paquete lo reemplaza o no lo ha definido como una dependencia.

Averigüe por qué no está instalado un paquete.

composer why-not client/module-example

Aloje un repositorio privado de Composer.

Si necesita un repositorio privado de Composer, utilice Empaquetador privado o JFrog Artifactory. No use Satis.

  • Empaquetador privado es seguro, cuesta alrededor de $ 600 USD por año con tres usuarios administradores y está alojado.

  • JFrog Artifactory comienza en $1,176 USD por año. No se usa tan comúnmente como Packagist, pero soporta más lenguajes que PHP.

  • Satis no tiene seguridad integrada ni automatización y requiere alojamiento adicional. Solo es gratis si tu tiempo también es gratis.

Versiones de paquetes

Uso Versiones semánticas 2.0.0 como se describe en Adobe Commerce esquema de versiones. No reinvente la rueda.

Para las dependencias del módulo Adobe Commerce, siga las dependencias de versión del módulo documentación.

No utilice la definición de versión dentro de composer.json archivo. En su lugar, utilice etiquetas Git para las versiones. Consulte Versiones del compositor y restricciones.

Dónde colocar los módulos que se incluyen en un archivo y no a través de Composer

Cree un repositorio Git para los módulos de un archivo y alojarlos. Cada módulo de Adobe Commerce tiene un composer.json archivo. Después de alojarlo en Git y sincronizarlo con Private Packagist, puede instalarlo con Composer.

Cuando reciba una nueva versión del paquete, cargue el código en Git, etiquete e instale la nueva versión con Composer.

recommendation-more-help
754cbbf3-3a3c-4af3-b6ce-9d34390f3a60