Я сам столкнулся с этой проблемой: в yii/yii2-elasticsearch нет поддержки scroll API, а она мне нужна. При этом соответствующий pull request висит с октября 2015 года. Естественно, я задался вопросом: как бы поудобнее временно подключить к своему проекту версию пакета, где реализован нужный функционал? При этом я понимаю, что рано или поздно этот pull request все-таки примут, и придется переключаться обратно.
Вот мое решение:
1. Сделать fork нужной версии пакета. В моем случае, я ответвился от 13leaf/yii2-elasticsearch. Появился пакет beowulfenator/yii2-elasticsearch.
2. В своем экземпляре пакета внести изменение в composer.json, которое позволит этому пакету заменить официальный. Нужно добавить следующий ключ:
"replace": {
"yiisoft/yii2-elasticsearch":"*"
}
Так мы указали composer, что если у какого-то другого компонента в зависимостях есть yiisoft/yii2-elasticsearch, то теперь эта зависимость будет удовлетворена нашим собственным компонентом.
3. Заменить в composer.json основного проекта ссылку на официальный пакет ссылкой на собственный пакет.
Было:
"yiisoft/yii2-elasticsearch":"*"
Стало:
"beowulfenator/yii2-elasticsearch": "dev-master"
4. Можно было бы зарегистрировать свой пакет в packagist, но так как он временный, нечего создавать путаницу. Достаточно указать в composer.json основного проекта ссылку на репозиторий:
"repositories": [
{
"type": "vcs",
"url": "http://ift.tt/1S7vctV"
}
]
После этого достаточно выполнить
composer update, и теперь вместо официального пакета будет использоваться наш собственный. Когда же разработчики все-таки примут pull request, достаточно будет отменить изменение в composer.json основного проекта.
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий