Php 使用composer时如何更新我的核心项目?
我最近第一次使用composer启动了一个项目,我刚刚将它部署到Q&a(演示)中,使用git我过去只做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应用程序(在我的个人资料中有链接),我就是这样做的,而且效果很好 当我
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
来安装依赖项。