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”而不是“*”,这样您就可以拥有更多的控制权。