Допустим, у меня есть composer.json
файл с заблокированными зависимостями:
{
"require" : {
"zendframework/zendframework" : "2.4.2"},
"require-dev": {
"phpunit/phpunit": "4.6.6"}
}
Я хочу сделать это, потому что хотел бы обновить зависимости вручную, поэтому я не буду в ситуации, когда моя сборка завершится неудачно или у других разработчиков возникнут проблемы, которых у меня нет, потому что Composer установил другую версию пакета.
Есть ли хороший способ использовать Composer для отображения всех новых версий заблокированных пакетов, возможно, что-то вроде composer discover
где я получаю вывод: zendframework/zendframework
заблокирован в версии 2.4.2
(или же 2.4.*
или что угодно), но есть версии 2.5.0, 2.5.1 и 2.6.0 *?
Может ли существующая команда предоставить такую информацию?
В основном, я больше о новых версиях, которые мне показывают, поэтому я могу знать, какую зависимость обновлять вручную. Совершать composer.lock
не совсем решение, потому что это не покажет мне, что обновлять (и мой composer.json
заблокирован в определенных версиях, поэтому composer.lock
не будет отличаться в любом случае).
Чтобы сделать то, что вы хотите, совершите composer.lock
файл и убедитесь, что все работает composer install
установить депс. Таким образом, у всех будет одинаковая версия / коммит каждого пакета.
Вы можете запустить composer update
чтобы получить новые версии. Это обновит пакеты и composer.lock
файл, который вы можете зафиксировать и отправить, чтобы у всех снова были одинаковые версии (после запуска composer install
).
Самый простой способ, вероятно, просто запустить:
composer outdated
и получить список устаревших зависимостей. Вывод выглядит примерно так:
Это не совсем то, что вы предлагаете. Но ты можешь бежать
composer update --dry-run
чтобы увидеть, что происходит, когда композитор обновляет ваши зависимости. Это показывает только последнюю версию, до которой пакет может быть обновлен, но не промежуточные версии:
composer update --dry-run
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating symfony/translation (v2.5.5) to symfony/translation (v2.5.11)
- Updating symfony/security-core (v2.5.5) to symfony/security-core (v2.5.11)
- Updating symfony/routing (v2.5.5) to symfony/routing (v2.5.11)
- Updating symfony/process (v2.5.5) to symfony/process (v2.5.11)
- Updating symfony/http-foundation (v2.5.5) to symfony/http-foundation (v2.5.11)
Как уже говорили другие, композитор делает то, что вы говорите, и будет только install
версии, указанные в файле .lock, или update
на новые версии (как указано в пределах диапазона данной версии).
Существуют внешние сервисы веб-сайта, которые сообщат вам, что пакеты были обновлены, такие как: Versioneye.com. Вы можете следить за несколькими пакетами, и он сообщит вам, когда какой-либо из них был обновлен, так что вы можете обновить файл композитора по своему усмотрению.
Чтобы показать последнюю версию пакетов, используйте show
с -l
/--latest
параметр, например
composer show -l
-l
,--latest
Показать последнюю версию
Чтобы увидеть дерево зависимостей, используйте -t
/--tree
параметр, например
composer show -t
-t
,--tree
Перечислите зависимости в виде дерева
Чтобы получить список всех доступных версий для данного пакета, запустите:
composer show -a zendframework/zendframework
Примечание: изменить zendframework/zendframework
с вашим именем пакета.
Заметки:
global
сразу после composer
,composer global help show
,