Коллеги, здравствуйте.
Извините, но поднакопилось.
Убедительная просьба, пишите пожалуйста для своих плагинов хоть где-нибудь (но лучше на видном месте), что они работают ТОЛЬКО для shop-script 7. И если в обновлениях вы начинаете пользовать что-то из семерки, просьба тоже писать в changelog, что дальше работаем только на семерке.
Последний пример. Плагин SEO-регионы. Клиент на шестерке обновил плагин до последней (2.0) версии. И все. Редактирование поддоменов отвалилось. Почему? Потому что в классе shopRegionsHelper используется вот это
shopHelper::getStocks()
Но в шестой версии(6.3.0.44568) в классе shopHelper нет метода getStocks(). Пришлось его туда вкорячить, попутно закоментив работу с виртуальными складами. Только вот еще возникает вопрос ... где еще что может всплыть =(
И это, к сожалению, не единичный случай. Просто он последний.
Вполне разумно. Вот только я б добавил, что совместимость с 5-6-7, раз уж все они кормятся из одного магазина, должна проверяться на стадии модерирования, и в случае отсутствия соответствующей информации в requirements.php делать ай-я-й-яй разработчику. Ну и на стадии тестирования разработчиком тоже конечно проверяться должно.
+1
Причем, нужна расширенная система проверки версий, чтобы у пользователей Shop-script 5/6 не висел постоянно горящий бейджик о доступности обновлений, которые они не могут установить на старую систему.
Модераторы не в силах проверять каждое использование методов. Моя личная позиция заключается в том, что обеспечить совместимость как с разными версиями PHP, так и с разными версиями продуктов - не так уж и сложно (но ряд сторонних разработчиков не разделяет такой позиции :) ).
Со своей стороны постараемся добавлять в PHP Doc комментариях к новым методам версии продукта, в которых они появились для простоты формирования системных требований.
requirements.php по моему отлично решает данную проблему, если б в плагинах магазина в обязательном порядке прописывалась мин. версия shop, то клиент бы не смог обновить плагин + все косяки совместимости ложились бы автоматом на разработчика.
Не изучал алгоритм, а requirements.php при обновлениях какую-то роль играет?
Т.е. если первоначально были одни требования, а потом requirements.php поменяли, обновление не встанет?
Если список строгих требований, декларированных в requirements.php обновленного плагина/приложения не удовлетворяется, то обновление нельзя установить.
Владислав, обновленного или обновляемого? запутали, идеальный вариант: если бы данный файл проверялся и при обновлениях (если сейчас не реализовано).
Сервер обновлений отдает системные требования для новой версии — они и проверяются.
Ну вот осталось только закрепить в регламенте разработчика инфу о том что он должен указать минимально совместимую версию своего продукта. WA добавьте в todo, идея Дмитрия действительно полезная.