composer.lock:它是如何工作的?

php dependency-management package-managers composer-php

56384 观看

3回复

5568 作者的声誉

我试图理解这一部分:http//getcomposer.org/doc/02-libraries.md#lock-file

此锁定文件不会对依赖它的其他项目产生任何影响。它只对主项目产生影响“

这是否意味着如果项目P依赖于库A,而库A依赖于库B v1.3,项目P将不关心库B的版本,并且可能会安装B 1.4而不是?那有什么意义呢?

或者它是否意味着相反,正如人们对依赖管理者的期望?

作者: HappyDeveloper 的来源 发布者: 2012 年 5 月 20 日

回应 (3)


64

846 作者的声誉

决定

Composer依赖项定义于composer.json。第一次运行composer install时,或者在运行composer update时,composer.lock将创建一个名为的锁定文件。

引用的文档仅涉及锁定文件。如果您的项目P依赖于库A而A取决于B v1.3。***,那么如果A包含一个锁定文件,说有人运行“composer update”导致安装了B v1.3.2,那么在项目中安装A P可能仍然安装1.3.3,因为composer.json(不.lock!)将依赖关系定义为1.3。*。

锁定文件始终包含确切的版本号,对于将您测试的版本与同事或发布应用程序进行通信非常有用。对于库,依赖信息composer.json是最重要的。

作者: naderman 发布者: 20.05.2012 09:52

38

1169 作者的声誉

composer.lock记录安装的确切版本。因此,您与同事的版本相同。

作曲家安装

  • 检查composer.lock文件
  • 如果没有,自动生成composer.lock文件(使用composer update
  • 安装composer.lock文件中记录的指定版本

作曲家更新

  • 浏览composer.json文件
  • 根据提到的版本标准检查新版本(最新版本)的可用性(例如1.12。*)
  • 安装最新版本(根据上述)
  • 更新composer.lock已安装版本的文件

所以在一个简单的清单中。

如果你想让所有同事保持与你相同的版本......

  • 提交您composer.lock的GIT(或您拥有的vcs)
  • 请其他人获取该版本的composer.lock文件
  • 始终用于 composer install获取正确的依赖项

如果要将系统依赖项升级到新版本

  • 检查composer.json文件以获取版本规范。
  • 做一个 composer update
  • 这将composer.lock使用最新版本更改文件
  • 将它提交给GIT(或vcs)
  • 要求其他人得到它 composer install

以下将是一个非常好的阅读
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

享受composer.lock文件的力量!

作者: Dilhan Maduranga 发布者: 15.09.2016 02:06

3

424 作者的声誉

锁定文件的要点是记录安装的确切版本,以便重新安装。这意味着如果您的版本规格为1. *并且您的同事运行composer update安装了1.2.4,然后提交composer.lock文件,那么当您composer install启用时,即使1.3.0也会获得1.2.4已经发布。这确保了在项目上工作的每个人都具有相同的确切版本。请阅读更多内容作曲家:这是锁文件的全部内容

作者: Shahzaib Hayat Khan 发布者: 05.06.2017 05:19
32x32