作曲家| laravel 5 - 更新依赖项,但框架本身

时间:2014-10-01 05:55:30

标签: laravel laravel-4 composer-php laravel-5

我正在为我的项目使用Laravel 5的预测试版。

我发现Laravel 5的应用程序框架在github repo中已更改,因为它是一个开发版本,预计会经常更改。

我的问题是,我是否可以使用composer而不是框架本身仅更新特定的依赖项?因此,在我准备好进行更改之前,我不必担心应用程序结构的变化吗?

以下是composer.json依赖项的外观:

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

谢谢。

4 个答案:

答案 0 :(得分:2)

Composer允许您进行特定的包升级。我在另一个晚上用这个来升级一个软件包来修复一个bug,但我并不想改变其他任何东西。

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

所以在你的情况下

composer update phpunit/phpunit way/generators fzaninotto/faker

当你有很多包时可能会更复杂 - 但这是一个有效的解决方案。

答案 1 :(得分:2)

是的,您只需致电

即可
composer update vendor/package

不更新整个项目。

它适用于您自己和依赖项所提取的包

答案 2 :(得分:2)

虽然composer update package package ...答案很好,但您可以做的另一件事是将您的Laravel要求规范更改为特定提交。 Composer documentation提到了如何做到这一点,我自己在一个项目上完成了它(虽然没有laravel,在我自己的包上也处于破坏/开发状态)。

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

我希望,因为laravel/framework'替换了各种illuminate/*包,所以依赖于这些(只要规范为5.0 - esque)没有下载照明包两次的工作。

这样做可以锁定给定提交的laravel/framework(或任何包),但仍允许标准composer update工作。

要了解您已经提交的内容,如果您的laravel/framework依赖项规范是开发者,那么vendor/laravel/framework/目录本身应该是git repo,所以只需执行git status在那里获得HEAD参考。或者,在composer.lock中查看laravel/framework条目的source.reference值。

答案 3 :(得分:-1)

你不能真的。如果您使用Laravel 5,这是您需要处理的事情,开发版本附带此退回。