我最近第一次使用composer启动了一个项目,我只是将其部署到Q&A(demo(中,使用git,我过去只是做一个git pull
并更新Q&A环境,但现在有了composer update
,只有依赖项得到更新。
我的问题是,更新核心项目的SOP(标准操作程序(是什么,我是否仍然使用git,或者有没有办法用作曲家来完成?
还是我完全做错了,应该在供应商文件夹中工作?
Composer 的要点是你不需要对依赖项进行版本控制,这意味着任何最终vendor/
。该项目具有composer.json
和composer.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
文件引用的确切版本。
您继续将git
用于您的项目,composer
用于第三方库。
我在PHP中有一个大型Web应用程序(我的个人资料中的链接(,这就是我一直在做的事情,而且效果很好。
当我有新的生产就绪代码并准备好发布时,我会:git fetch && git pull
当我想更新作曲家时,我会:composer -o update
我不知道您是否熟悉-o
标志 - 它会生成静态自动加载地图,从而使您的项目加载类更快。更多信息在这里。