композитор | laravel 5 - Обновление зависимостей, кроме самого фреймворка

Я использую предварительную бета-версию Laravel 5 для своего проекта.

Я обнаружил, что скелет приложения Laravel 5 был изменен в репозитории github, и, поскольку это разрабатываемая версия, ожидается, что она будет меняться довольно часто.

Мой вопрос: могу ли я обновлять только определенные зависимости с помощью композитора, а не сам фреймворк? Чтобы мне не приходилось беспокоиться об изменении структуры приложения, пока я не буду готов внести изменения?

Вот как выглядят зависимости composer.json:

    "require": {
        "laravel/framework": "~5.0"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "way/generators": "~3.0",
        "fzaninotto/faker": "~1.5@dev"
    },

Спасибо.


person aBhijit    schedule 01.10.2014    source источник
comment
Вы можете удалить часть require, чтобы, возможно, сделать обновления зависимостей композитором, но это довольно хакерский и беспорядочный. Но это возможно. Ни в коем случае не рекомендуется, кстати. Обратите внимание, что JSON пока не позволяет комментировать / комментировать.   -  person Sliq    schedule 01.10.2014


Ответы (4)


Хотя composer update package package ... ответ хорош, вы можете сделать еще одну вещь - изменить спецификацию требований Laravel на конкретную фиксацию. В документации Composer упоминается, как это сделать, и я это сделал. я работаю над проектом (но не с laravel, а с моими собственными пакетами, которые также находятся в аварийном состоянии / dev).

"require": {
    "laravel/framework": "dev-master#49e3c77b518547bb661b1de4fda64a3ae0c5c505",
    ...
}

Я надеюсь, что, поскольку laravel/framework «заменяет» различные illuminate/* пакеты, что любая зависимость от них (пока спецификация 5.0-esque), что это будет работать без двойной загрузки пакетов с подсветкой.

Поступая таким образом, вы можете заблокировать свой laravel/framework (или любой пакет) на данном коммите, но все же позволить стандартному composer update работать.

Чтобы узнать, в каком коммите вы уже участвуете, если ваша laravel/framework спецификация зависимостей является разработкой, тогда сам каталог vendor/laravel/framework/ должен быть репозиторием git, поэтому просто введите там git status, чтобы получить HEAD ref. Или посмотрите в composer.lock значение source.reference записи laravel/framework.

person alexrussell    schedule 01.10.2014

Composer позволяет выполнять определенные обновления пакетов. Я использовал это буквально вчера вечером, чтобы обновить один пакет, чтобы исправить ошибку, но я не хотел ничего менять.

composer update <package1> <package2> <...>

Так что в вашем случае

composer update phpunit/phpunit way/generators fzaninotto/faker

Это может быть сложнее, когда у вас много пакетов, но это решение, которое работает.

person Laurence    schedule 01.10.2014

Да, вы можете просто позвонить

composer update vendor/package

без обновления всего проекта.

Он будет работать для пакетов, загруженных вами, и для зависимостей

person Jarek Tkaczyk    schedule 01.10.2014

Вы действительно не можете. Если вы используете Laravel 5, это то, с чем вам нужно иметь дело, версии для разработки поставляются с этим бэкграундом.

person barfurth    schedule 01.10.2014