Symfony2: обновление только одного пакета поставщиков - PullRequest
4 голосов
/ 26 января 2012

Есть ли способ обновить только один пакет без обновления каждого пакета в вашем файле deps?В настоящее время я использую «php vendors install» для установки всех пакетов поставщиков и не знаю ни одной команды, которая обновляет только один пакет за раз.

Ответы [ 2 ]

5 голосов
/ 27 января 2012

1) Просто откройте файл deps (./deps)

2) Удалите все пакеты, кроме той, которую хотите обновить, и сохраните файл deps

3) Запустим команду: php bin / vendors update

Обновит комплект.

4) Вернитесь в файл deps и перепишите все ранее удаленные строки пакета!

Ура!

3 голосов
/ 10 мая 2012

Короткая версия: «Лучший способ» сделать это зависит от вашей настройки. Если вы ранее запускали «php bin / vendors update», то, вероятно, было бы лучше удалить строку для пакета, который вы хотите обновить, из вашего файла deps.lock, а затем запустить «php bin / vendors install» из вашей базы. папка symfony.

Длинная версия: Я думаю, что некоторые разъяснения того, что делают различные команды вендоров, в порядке.

1) php bin / vendors install

Эта команда загружает (при необходимости) и устанавливает исходные файлы пакета поставщика в symfony / vendor. Эта команда сначала просматривает файл deps.lock, чтобы увидеть, какие коммиты / версии git перечислены там, а затем просматривает файл deps, чтобы увидеть, какие версии там перечислены. Если ни одна из версий не указана ни в одном из пакетов, он загрузит самую последнюю версию кода пакета для этого пакета. Если версия найдена, она загрузит и установит эту версию кода комплекта поставщика.

Эта команда ничего не помещает в deps.lock.

2) php bin / vendors install --reinstall

Эта команда делает то же самое, что и установка php bin / vendors, за исключением того, что она всегда загружает код перед установкой в ​​symfony / vendor.

Эта команда ничего не помещает в deps.lock.

3) Обновление php bin / vendors

Эта команда игнорирует deps.lock и загружает (при необходимости) и устанавливает версии кода пакета, перечисленные в файле deps, в symfony / vendor.

После завершения загрузки и установки кода он поместит идентификатор / версию git commit загруженного кода для каждого пакета в файл deps.lock. Таким образом, когда вы запускаете одну из перечисленных выше команд установки, загружаемая версия кода не изменится, если вы не удалите соответствующую строку из файла deps.lock или не запустите команду обновления снова.

Идея файла deps.lock заключается в том, что он предотвращает случайное обновление ваших пакетов до более поздней неработающей версии кода пакета сторонних производителей. Symfony и его пакеты находятся в постоянном развитии, поэтому изменения (даже если они не являются ошибками) происходят довольно часто и нарушают ваш код. Возможно, вы захотите заблокировать свои версии в deps.lock как можно скорее и обновлять только тогда, когда вам захочется сделать это.

После того, как вы заблокировали версии своего пакета в deps.lock, вам просто нужно удалить соответствующую строку из файла deps.lock и выполнить одну из команд установки для обновления определенного пакета, как я уже говорил в краткий ответ выше. Если вы затем хотите заблокировать этот код до версии, которую вы только что установили, вам нужно добавить строку в deps.lock самостоятельно или удалить все из deps и запустить обновление php bin / vendor, как показано в ответе выше.

...