composer.lock 文件是 Composer 程序结合你当前的 PHP 运行环境和 composer.json 中的配置来安装合适版本的包后生成的。它包含了安装的所有包的版本信息。如果你的队友拿到你的 composer.jsoncomposer.lock,并执行 composer install 的话,Composer 只会读取 composer.lock 中指定的版本信息,这样一来,你们俩最终安装的类库就一模一样了。

倡议

鉴于上述特性,对于业务项目,建议将 composer.jsoncomposer.lock 都放入到版本控制系统中,这样让各个成员,以及生产环境下均能保持一致版本。而对于类库类型的项目,就不要将 composer.lock 放入,因为真实使用你的类库的项目还会自行调整的。

当然了,这里也保留另外一种方式,那就是在预发布环境打包时才将 composer.lock 打包在一起,使得最后部署线上的时候安装的版本和预发布环境的一致。

以下为建议的做法:

环境 环境释义 包含文件
dev 开发环境 composer.json
test 测试环境 composer.json
staging 预发布环境 composer.json, composer.lock
prod 生产环境 composer.json, composer.lock

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据