2

我正在为我的项目使用 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

4 回答 4

2

Composer 允许您进行特定的包升级。前几天晚上,我确实使用它来升级单个软件包以修复错误,但我不想更改其他任何内容。

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

所以在你的情况下

composer update phpunit/phpunit way/generators fzaninotto/faker

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

于 2014-10-01T07:09:33.300 回答
2

是的,你可以简单地打电话

composer update vendor/package

无需更新您的整个项目。

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

于 2014-10-01T07:09:47.287 回答
2

虽然composer update package package ...答案很好,但您可以做的另一件事是将您的 Laravel 需求规范更改为特定的提交。Composer 文档提到了如何做到这一点,我自己在一个项目中完成了它(虽然不是使用 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 ref。或者,查看composer.lock条目laravel/frameworksource.reference值。

于 2014-10-01T08:15:46.053 回答
-2

你真的不能。如果你使用 Laravel 5,这是你需要处理的事情,开发版本带有这个 backdraw。

于 2014-10-01T06:19:58.347 回答