composer.lock:它是如何工作的?
我试图了解这个部分: http : //getcomposer.org/doc/02-libraries.md#lock-file
这个locking文件不会对依赖它的其他项目产生任何影响。 它只对主要项目“
这是否意味着如果项目P依赖于库A,而库A依赖于库B v1.3,则项目P将不关心库B的版本,并且可能会安装B 1.4而不是? 那有什么意义呢?
还是意味着相反,正如人们所期望的从属经理?
Composer依赖关系在composer.json
中定义。 首次运行composer php安装时,或运行composer php更新时,将创build一个名为composer.lock
的锁文件。
引用的文档仅涉及锁文件。 如果你的项目P依赖于库A和A依赖于B v1.3 ***,那么如果A包含一个locking文件,说有人运行了“作曲者更新”,导致B v1.3.2被安装,那么在你的项目中安装A P仍然可以安装1.3.3,因为composer.json
(不是.lock
!)将依赖关系定义为1.3。*。
locking文件始终包含确切的版本号,并且可用于将您testing的版本传送给同事或发布应用程序。 对于库, composer.json
的依赖信息是重要的。
composer.lock
logging安装的确切版本。 所以你和你的同事在同一个版本。
composer php安装
- 检查
composer.lock
文件 - 如果没有,自动生成
composer.lock
文件(使用composer update
) - 安装logging在
composer.lock
文件中的指定版本
composer php更新
- 浏览一下
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
文件的力量!
locking文件的目的是logging所安装的确切版本,以便可以重新安装。 这意味着如果你有一个版本规格为1. *,你的同事运行安装了1.2.4的composer update
,然后提交composer.lock文件,那么当你composer install
,你也会得到1.2.4,甚至如果1.3.0已经发布。 这确保在项目上工作的每个人都有相同的确切版本。在这里阅读更多composer php:这是所有关于locking文件