composer.lock
文件是 Composer
程序结合你当前的 PHP
运行环境和 composer.json
中的配置来安装合适版本的包后生成的。它包含了安装的所有包的版本信息。如果你的队友拿到你的 composer.json
和 composer.lock
,并执行 composer install
的话,Composer
只会读取 composer.lock
中指定的版本信息,这样一来,你们俩最终安装的类库就一模一样了。
倡议
鉴于上述特性,对于业务项目,建议将 composer.json
和 composer.lock
都放入到版本控制系统中,这样让各个成员,以及生产环境下均能保持一致版本。而对于类库类型的项目,就不要将 composer.lock
放入,因为真实使用你的类库的项目还会自行调整的。
当然了,这里也保留另外一种方式,那就是在预发布环境打包时才将 composer.lock
打包在一起,使得最后部署线上的时候安装的版本和预发布环境的一致。
以下为建议的做法:
环境 | 环境释义 | 包含文件 |
---|---|---|
dev |
开发环境 | composer.json |
test |
测试环境 | composer.json |
staging |
预发布环境 | composer.json , composer.lock |
prod |
生产环境 | composer.json , composer.lock |