composer 是 php 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
特定的文件介绍
composer.json: 所有的依赖都定义在composer.json中
composer.lock: 指定了依赖对应的版本
命令的区别
composer install: (项目第一次执行composer,没有composer.json文件)
它将会去读取你的composer.lock而非composer.json,并且以此为标准去下载依赖。
当你本地没有composer.lock的时候,它所做的事情和composer update其实并没有区别。
这意味着,只要你本地有一份composer.lock,你就可以保证无论过去了多久,你都能拉到相同的依赖。而如果你把它纳入你的项目的版本控制中,那么你就可以确保你项目中的每一个人、每一台电脑,不管什么系统,都能拉取到一模一样的依赖,以减少潜在的依赖对部署的影响。当然,请记得,你应该使用的命令是composer install。
composer update:(有composer.json文件之后)
当你执行update的时候,composer会去读取composer.json中指定的依赖,去分析他们,并且去拉取符合条件最新版本的依赖。然后他会把所拉取到的依赖放入vendor目录下,并且把所有拉取的依赖的精确版本号写入composer.lock文件中。
composer require:(composer.json文件中没有要新增的依赖)
composer rquire 类库名
注意
1、那什么时候该使用composer update呢?
当你修改了你的依赖关系,不管是新增了依赖,还是修改了依赖的版本,又或者是删除了依赖,这时候如果你执行composer install的时候,是不会有任何变更的,但你会得到一个警告信息
2、如果你不希望影响别的已经安装的依赖,仅仅更新你修改的部分,那你可以通过指定白名单来确定要更新的范围,
例如composer update monolog/monolog仅会更新monolog/monlog这个依赖,别的依赖哪怕有更新也会被忽略。
小技巧
install表示从无到有的安装(甚至一开始都没有composer.json文件),可以按照lock文件安装指定版本的依赖。
update表示升级,不会读取lock文件,只会根据composer.json文件安装最新版的依赖
|