Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

403
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!