Php Composer工作流:更改依赖项时如何更新Composer.lock
该项目是通过Php Composer工作流:更改依赖项时如何更新Composer.lock,php,development-environment,composer-php,Php,Development Environment,Composer Php,该项目是通过composer.phar安装设置的——首选源代码,并包含许多保存在git中的模块 我在我的IDE(PhpStorm)中管理所有这些模块及其git存储库,因此可能会将一些更改提交给vendor/文件夹中的一些模块-直接提交给源git存储库 我现在如何确保我的同事在执行composer.phar安装时获得我的最新模块版本(composer.lock在repo中) 如果我进行本地composer.phar更新,它看起来像是没有更新composer.lock,因为我已经有了最新版本(因为我
composer.phar安装设置的——首选源代码,并包含许多保存在git中的模块
我在我的IDE(PhpStorm)中管理所有这些模块及其git存储库,因此可能会将一些更改提交给vendor/
文件夹中的一些模块-直接提交给源git存储库
我现在如何确保我的同事在执行composer.phar安装时获得我的最新模块版本
(composer.lock
在repo中)
如果我进行本地composer.phar更新
,它看起来像是没有更新composer.lock
,因为我已经有了最新版本(因为我刚刚直接在供应商
文件夹中提交)
提交已更新的模块repos中的更改
将更改推送到所有相应的远程回购
用适当的版本标记新更改
运行composer update vendor1/package1 vendor2/package2
(如果不需要明确说明,则只运行composer update
)
提交并推送更新的composer.lock
文件
您的同事需要拉取更新的composer.lock
文件并运行composer安装
(从lock文件安装最新的软件包版本)
如果您在composer.json
中指定了版本限制,如“vendor/package”:“3.5.*
,并且您已经标记了一个新版本,如3.6.0
,则需要在步骤4.
之前相应地更新composer.json
文件
另外,您最好将这种工作流与一起使用--首选源代码。请不要在composer.json
中使用*
或dev master
版本限制。我建议始终使用版本,即使它们处于零主版本范围(0.X.X
)。如果您指向标记,版本将不会更改,而且composer也看不到更新它的原因。如果是这种情况,那么在更改包定义时应该增加版本号。问题是如何生成更新的编写器。锁不会更新,因为您没有推动更改。从vendor/dir更改库后,应将更改推送到remote。之后,作曲家将检测到新版本并相应地采取行动。我建议根据需要使用“dev develop”或“dev master”而不是“*”,这样您就可以拥有更多的控制权。