Как решить проблему совместимости пакетов в PHP?

Суть проблемы проста. Допустим у нас есть какая CMS'ка, которая построена на пакетах (Prestashop, Magento, OctoberCMS и т.д.). Мы написали некоторый модуль, и используем Guzzle версии 7. К нам приходить заказчик с магазином на Prestashop (https://github.com/PrestaShop/PrestaShop/blob/develop/composer.json у которого стоит guzzle 5 версии) и говорит, установи мне свой модуль. Мы устанавливаем его, и при выполнении получаем ошибку, т.к. autoload ядра отработает и подключит свой guzzle. Мы можем в composer.json своего модуля установить prepend-autoloader = true, но тогда это приведет к некорректной работе самой CMS.


Ответы (1 шт):

Автор решения: binliz

2 решения, точнее даже очень важно оба реализовать если продаете:

  1. держать модуль с 7ой версией и ставить условие, что это важная зависимость для интеграции и стабильности модуля. (пусть сначала решат зависимость тогда ставят модуль).

  2. Делать версию, релиз модуля (версию) под нужную зависимость, и в репозитории ставить модуль нужной версии.

Как бы если вы продаете - вы подстраиваетесь под рынок. Или если вы очень круты и без вас не обойдутся то рынок подстроиться под вас.

→ Ссылка