每次将要安装的依赖(lib或者package)先写在composer.json文件,然后执行composer install,接着就会下载composer.json中写好的那些lib或者package,等待这些文件下载结束之后,会生成一个composer.lock文件,该文件包含当前各lib或者package的当前版本信息。
上传composer的文件:composer.json和composer.lock文件到版本控制管理中,别人下载之后,执行composer.install,此时,因为有composer.json文件和composer.lock文件,而composer.lock文件保存的是版本信息,该版本信息可能对于composer.json中的版本要高一些,所以执行composer.install之后,会以composer.lock为准。
每次更新,即执行composer update时,如果有新的lib或者package需要下载,那么可以将新的lib或者package的信息写到composer.json中,执行composer update时就会执行composer.json,而不是composer.lock;如果没有新的lib或者package要添加时,则运行的是composer.lock文件。
执行更新后,都会将版本信息保存到composer.lock文件中,这意味着会修改composer.lock中lib或者package的版本信息,始终保存当前的最新版本(是已经安装的最新版本)。