Как решить проблему совместимости пакетов в 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 шт):
2 решения, точнее даже очень важно оба реализовать если продаете:
держать модуль с 7ой версией и ставить условие, что это важная зависимость для интеграции и стабильности модуля. (пусть сначала решат зависимость тогда ставят модуль).
Делать версию, релиз модуля (версию) под нужную зависимость, и в репозитории ставить модуль нужной версии.
Как бы если вы продаете - вы подстраиваетесь под рынок. Или если вы очень круты и без вас не обойдутся то рынок подстроиться под вас.