使用composer时如何更新核心项目?

时间:2017-08-07 15:39:35

标签: php git composer-php

我最近第一次使用composer开始了一个项目,我刚刚将它部署到Q& A(演示),使用git我曾经只做git pull并更新Q& A环境,但是现在只有composer update才会更新依赖项。

我的问题是,更新核心项目的SOP(标准操作程序)是什么,我仍然使用git,还是有办法用作曲家来做?

或者我完全做错了,应该在供应商文件夹中工作吗?

2 个答案:

答案 0 :(得分:1)

您继续使用git用于您的项目,composer用于第三方库。

我有一个PHP的大型网络应用程序(在我的个人资料中链接),这就是我一直在做的,它运作良好。

当我有新的生产就绪代码并且它已准备好发布时,我会: git fetch && git pull

当我想更新作曲家时,我会: composer -o update

我不知道您是否熟悉-o标志 - 它会生成静态自动加载映射,这会使您的项目加载类更快。更多信息here

答案 1 :(得分:1)

Composer的观点是你需要版本控制依赖关系,这意味着任何最终都在vendor/

该项目有composer.jsoncomposer.lock。这些都在git的控制之内,因此它知道要使用的包和版本。但是,应使用vendor/忽略.gitignore目录。如果您还没有设置,只需添加以下行:

/vendor/*

您的版本正常控制其他文件。

所以操作程序是使用git和normal。其次是composer update

这种设置的优点是git不必费心管理可能永远不会改变的数千个文件(在vendor/内)。他们改变的唯一情况是,如果您想开始使用不同的版本的软件包,或者添加新软件包。好吧,所有这些软件包/版本都在composer.json中定义(git正在监视更改)。您只需运行composer update即可将vendor/目录中的所有内容更新为“正确”版本。

这是使用Composer的优势之一 - 所有开发人员都可以拥有正确软件包/版本的“列表”,而无需对其中的所有文件进行版本控制。

根据以下评论

编辑

注意composer update只应在开发中运行。部署到QA或生产时使用composer install。这将安装composer.lock文件引用的确切版本。