举杯邀月

composer install 与 composer update 的区别

摘要:composer是php得 一个依赖管理工具,它允许你申明项目所以来额代码库,会在你得项目中安装他们。

composer是php得 一个依赖管理工具,它允许你申明项目所以来额代码库,会在你得项目中安装他们。
我们知道项目得所有依赖都定义在项目得composer.json中,并且每个依赖都指定了一个版本,但是更多得时候并不是指定一个明确得版本,这样得情况下就会发生一个意外得情况,对于同一个composer.json来说,在不同时刻拉取依赖文件时可能会拉去不同版本得依赖,从而导致出现一些意外状况。
update 和 install 两个命令就是为了解决这个问题而出现得。

1、当执行 update 命令时,composer会读取composer.json中的依赖并分析他们,拉去符合条件的最新版本的依赖,然后把拉去额依赖放入vendor目录下,并把所有拉去依赖的精确版本号写入到composer.lock文件中。

2、当执行 install 时所执行事情非常类似,只是第一步的时候回先找composer.lock文件而非composer.json文件,并以此为标准去下载依赖。当你本地没有composer.lock文件时,他所作的事情和update并没有什么区别

这意味着,只要你本地有一份composer.lock文件,你就可以保证无论过去多久,每一天电脑都能拉去相同的依赖。

那什么时候用update呢?当你修改了你的依赖关系,不管是新增依赖、修改依赖版本还是删除了依赖,这个时候如果执行install的时候是不会又任何改变的,而且还会得到一条警告

Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
1
1
1

如果你仅仅想更新某一个依赖,不希望影响到其他的依赖,那么可以指定更新某个依赖
例如 composer update monolog/monolog 仅会更新 monolog/monlog 这个依赖,别的依赖哪怕有更新也会被忽略。

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fdc5a99d78cc.html

2020-10-21 标签: composer