要为您的项目安装定义的依赖项,只需运行composer install命令即可。运行composer install 的时候composer将会去读取composer.lock文件,如果composer.lock不存在或者没有内容,那么composer install将执行composer.json,并将最新版本的文件下载到vendor项目目录中,同时更新composer.lock文件,否则将根据composer.lock去下载更新所有依赖。这样关系就很简单了,运行composer install的时候如果有composer.lock则根据composer.lock去更新下载依赖,否则根据composer.json去下载更新依赖。
这时候又引发了一个讨论,在用git部署项目的时候是否应该讲composer.lock提交包git上,composer官方是建议提交的,原因如下:
将此文件提交给版本库很重要,因为它会导致任何设置项目的人都使用与您正在使用的完全相同的依赖项。您的服务器,生产机器,您团队中的其他开发人员,所有和所有人都运行在相同的依赖关系上,从而减轻了仅影响部署部分的错误的潜力。即使您单独开发,在重新安装项目六个月后,即使您的依赖关系从那以后发布了许多新版本,您也可以确信已安装的依赖项仍然可以工作。也就是说将composer.lock提交到git上可以在不同机器上部署这个项目所安装的依赖是完全相同的,因为都是根据composer.lock文件去更新。
如上所述,该composer.lock文件阻止您自动获取最新版本的依赖项。要更新到最新版本,请使用composer update命令,同时应该注意的是在开发过程中一般不适应update命令,因为update命令将更新所有的依赖到最新,这个动作是危险的,你之前使用的类库可能已经更新的面目全非而导致你之前的代码不可用。
网友评论