Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

387
Vistas
¿Cómo incluir dependencias de compositor superpuestas en un complemento ZIP de Shopware 6?

Al distribuir Shopware Plugins como un archivo ZIP, debe incluir el directorio del vendor , pero sin las dependencias de shopware/core , shopware/administration , etc. definidas en composer.json . Ese me puse manos a la obra.

Pero, ¿cómo incluir dependencias, que a su vez tienen dependencias, que se superponen con las dependencias de shopware/core ?

Explícitamente, trato de agregar un paquete, que depende (como el propio Shopware) de psr psr/cache . Pero cuando lo incluyo, recibo el siguiente mensaje de error, al activar el complemento:

 Fatal error: Cannot declare interface Psr\Cache\CacheItemPoolInterface, because the name is already in use in /var/www/html/vendor/psr/cache/src/CacheItemPoolInterface.php on line 14

¿Hay algún flujo de trabajo conocido para resolver este tipo de problemas? La documentación que proporciona Shopware no explica cómo resolver este tipo de conflictos.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si distribuye complementos para Shopware y usa bibliotecas de Composer, puede encontrar conflictos de alcance y espacio de nombres como Fatal error: Cannot declare interface... . El mismo problema se encuentra en WordPress , Joomla , PrestaShop o cualquier otro CMS donde no tienes un control completo de lo que está instalado.

Como describió, el problema inicial es un conflicto entre las bibliotecas principales y las dependencias de su complemento. Además, puede encontrar problemas entre cada paquete instalado en el sistema que copia los paquetes de Composer a Shopware usando las mismas bibliotecas o diferentes versiones de las mismas bibliotecas.

En la práctica, la única solución real y más flexible es anteponer el código PHP que incluye en el archivo ZIP. De esta manera, está completamente seguro de que funciona independientemente de lo que esté instalado junto a él.

En el ecosistema de PHP, existen algunas soluciones para prefijar espacios de nombres y personalizar el alcance del proyecto. Por ejemplo: php-scoper, namespacer, mozart o PHP-Prefixer.

Descargo de responsabilidad: soy el desarrollador principal de PHP-Prefixer.

over 4 years ago · Santiago Trujillo Denunciar

0

Si es su complemento, entonces hay tres opciones.

  1. Requiere el mismo paquete
  2. Use una herramienta como https://github.com/humbug/php-scoper para solucionar los problemas de nombres.
  3. Instalarlo a través del compositor

Si no es suyo, debe crear un problema para el proveedor del complemento.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda