我最近第一次使用composer开始了一个项目,我刚刚将它部署到Q& A(演示),使用git我曾经只做git pull
并更新Q& A环境,但是现在只有composer update
才会更新依赖项。
我的问题是,更新核心项目的SOP(标准操作程序)是什么,我仍然使用git,还是有办法用作曲家来做?
或者我完全做错了,应该在供应商文件夹中工作吗?
答案 0 :(得分:1)
您继续使用git
用于您的项目,composer
用于第三方库。
我有一个PHP的大型网络应用程序(在我的个人资料中链接),这就是我一直在做的,它运作良好。
当我有新的生产就绪代码并且它已准备好发布时,我会:
git fetch && git pull
当我想更新作曲家时,我会:
composer -o update
我不知道您是否熟悉-o
标志 - 它会生成静态自动加载映射,这会使您的项目加载类更快。更多信息here。
答案 1 :(得分:1)
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
文件引用的确切版本。