2014-10-01 170 views
2

我正在为我的项目使用Laravel 5的beta版本。作曲家| laravel 5 - 更新依赖关系,但框架本身

我发现Laravel 5的应用程序框架在github仓库中发生了变化,并且因为它是一个开发版本,所以预计会频繁更改。

我的问题是,我可以只更新使用作曲家而不是框架本身的特定依赖关系吗?这样我就不必担心变化的应用程序结构,直到我准备好进行更改为止。

这里是composer.json依赖的样子:

"require": { 
     "laravel/framework": "~5.0" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "~4.0", 
     "way/generators": "~3.0", 
     "fzaninotto/faker": "[email protected]" 
    }, 

谢谢。

+0

你可以删除“require”-part来创建依赖关系的作曲家更新,但这很不方便。但是,这是可能的。不以任何方式推荐顺便说一句。请注意,JSON不允许评论/评论。 – Sliq 2014-10-01 06:28:56

回答

1

虽然composer update package package ...答案是一个很好的工作,你也许能够做的另一件事就是改变你的Laravel需要规范的具体承诺。 Composer documentation提到了如何做到这一点,而且我自己在一个项目上完成了它(尽管没有laravel,在我自己的软件包上也处于打破/ dev状态)。

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

我倒是希望,因为laravel/framework“替代”的各种illuminate/*包,就这些依赖任何(只要该规范是5.0 -esque),这将无需下载的照射包加倍努力。

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

要找出提交你已经上,如果你的laravel/framework依赖规范是一个开发一个,则vendor/laravel/framework/目录本身应该是个混帐回购协议,所以只是做git status在那里得到了HEAD裁判。或者,请查看composer.lock中的laravel/framework条目的值source.reference值。

-1

你不可能真的。如果你使用Laravel 5这是你需要处理的事情,那么开发版本会带着这个反向绘图。

2

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

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

所以你的情况

composer update phpunit/phpunit way/generators fzaninotto/faker

,当你有大量的包可能是更复杂 - 但它是一个可行的解决方案。

2

是的,你可以简单地调用

composer update vendor/package 

,而无需更新整个项目。

它将为自己拉包和依赖