Composer: Недавно добавленная опция типа в RepositoryInterface :: search () прерывает BC

Созданный на 22 июн. 2016  ·  3Комментарии  ·  Источник: composer/composer

Вот критическое изменение: https://github.com/composer/composer/commit/6a557e45b8295007db61e786736f04018fe5fe90#commitcomment -17966162
и проблема, вызванная этим: francoispluchino / composer-asset-plugin # 230

изменения были внесены в № 5454, что также вызвало еще один сбой, о котором сообщается в № 5456.

Сообщение об ошибке после обновления композитора:

Fatal error: Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::search()
must be compatible with Composer\Repository\RepositoryInterface::search($query, $mode = 0, $type = NULL)
in /code/vendor/fxp/composer-asset-plugin/Repository/AbstractAssetsRepository.php on line 334

см. francoispluchino / composer-asset-plugin # 230 для более подробной информации.

Самый полезный комментарий

ИМО, это не нарушает само по себе, это только ломает старые плагины с новой версией, но если плагин адаптируется к новой версии, он должен быть совместим со старыми версиями композитора согласно https://3v4l.org/7OfIR ( добавление параметров в реализуемый вами интерфейс - это нормально, но меньшее - нет).

Мы могли бы просто удалить параметр из интерфейса, который не должен нарушать функциональность и позволяет старым плагинам работать нормально. Затем его можно было добавить в 2.0. Это был бы более строгий подход BC.

Все 3 Комментарий

Однако проблему нелегко исправить. Эти изменения были применены к основной ветке, где допустимы разрывы BC. Однако, поскольку плагины не могут зависеть от конкретной версии, а скорее ограничены запуском с той версией, которую вы, пользователь, выберете для запуска, все может неожиданно сломаться, если вы решите использовать последний снимок вместо стабильной версии.

Я прекрасно понимаю, что хозяин может сломаться, это нормально. Я сообщил об этом, чтобы он не был включен в выпуск без внесения необходимых изменений.

ИМО, это не нарушает само по себе, это только ломает старые плагины с новой версией, но если плагин адаптируется к новой версии, он должен быть совместим со старыми версиями композитора согласно https://3v4l.org/7OfIR ( добавление параметров в реализуемый вами интерфейс - это нормально, но меньшее - нет).

Мы могли бы просто удалить параметр из интерфейса, который не должен нарушать функциональность и позволяет старым плагинам работать нормально. Затем его можно было добавить в 2.0. Это был бы более строгий подход BC.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги