我试图理解这部分:http://getcomposer.org/doc/02-libraries.md#lock-file
这个锁文件不会对其他依赖它的项目产生任何影响。只对主项目有影响”
这是否意味着如果项目 P 依赖于库 A,而库 A 依赖于库 B v1.3,则项目 P 不会关心库 B 的版本,而可能会安装 B 1.4?那有什么意义呢?
或者它是否意味着相反的意思,正如人们对依赖管理器所期望的那样?
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.lock 文件
将其提交到 GIT(或 vcs)
让其他人得到它并作曲家安装
以下将是一个很好的阅读
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
享受 composer.lock
文件的强大功能!
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
中的依赖关系信息才是最重要的。
锁定文件的重点是记录已安装的确切版本,以便重新安装它们。这意味着如果您的版本规范为 1.* 并且您的同事运行 composer update
安装 1.2.4,然后提交 composer.lock 文件,当您 composer install
时,您还将获得 1.2.4 ,即使 1.3.0 已经发布。这可确保从事该项目的每个人都拥有相同的确切版本。在此处阅读更多信息 Composer: It’s All About the Lock File
不定期副业成功案例分享