我正在为我的项目使用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"
},
谢谢。
答案 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,这是您需要处理的事情,开发版本附带此退回。