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

Php 使用composer时如何更新我的核心项目?,php,git,composer-php,Php,Git,Composer Php,我最近第一次使用composer启动了一个项目,我刚刚将它部署到Q&a(演示)中,使用git我过去只做git拉取并更新Q&a环境,但现在使用composer更新只更新依赖项 我的问题是,更新核心项目的SOP(标准操作程序)是什么,我是否仍然使用git,或者是否有一种使用composer的方法 或者我完全错了,应该在供应商文件夹中工作吗?您继续在项目中使用git,在第三方libs中使用composer 我有一个PHP的大型web应用程序(在我的个人资料中有链接),我就是这样做的,而且效果很好 当我

我最近第一次使用composer启动了一个项目,我刚刚将它部署到Q&a(演示)中,使用git我过去只做
git拉取
并更新Q&a环境,但现在使用
composer更新
只更新依赖项

我的问题是,更新核心项目的SOP(标准操作程序)是什么,我是否仍然使用git,或者是否有一种使用composer的方法


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

您继续在项目中使用
git
,在第三方libs中使用
composer

我有一个PHP的大型web应用程序(在我的个人资料中有链接),我就是这样做的,而且效果很好

当我有了新的生产就绪代码并准备发布时,我会:
git提取和git提取

当我想更新composer时,我会:
composer-o更新


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

Composer的要点是,您不需要对依赖项进行版本控制,这意味着任何最终会出现在
vendor/
中的内容

该项目有一个
composer.json
composer.lock
。这些都在git的控制范围内,因此它知道要使用的包和版本。但是,应使用
.gitignore
忽略
供应商/
目录。如果尚未设置,只需添加以下行:

/vendor/*
您可以正常控制其他文件的版本

所以操作程序是使用git和normal。然后是
编写器更新

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

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

根据以下评论进行编辑:


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

我要做的是制作一个cronjob,它每x天/月执行一次,更新依赖项。注意
composer update
应该只在开发中运行。部署到QA或生产环境时,请使用
composer安装
。这将安装您的
composer.lock
文件引用的确切版本。您不希望在生产环境中安装依赖项的新版本和未经测试的版本。请更新此答案以使用
composer install
而不是
composer update
来安装依赖项。