雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

composer install、update、require 区别

2024-09-14 17

1. 前言


首先要搞清楚的一件事情是,所有的依赖都定义在composer.json中。

在指定安装扩展包的时候,并不是非要指明一个精确的版本。

那么就有可能发生这么一个情况,对于同一份composer.json,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份依赖),从而导致一些异常情况。

composer updatecomposer install 正是为了解决这个问题而出现的。

2. composer install 和 composer update 的区别


相同点

当本地不存在 composer.lock 文件时, composer instal 和 composer update 作用相同, 都会去读取 composer.json 中定义的依赖, 并且去拉取符合条件的最新版本的依赖, 然后把所拉取到的依赖放入 vendor 目录下, 最后把所有拉取的依赖的精确版本号写入 composer.lock 文件

不同之处

当本地存在 composer.lock 文件时, composer install 将会去读取 composer.lock 中存储的版本号, 并且以此标准去下载依赖; 而 composer update 则不会去读取 composer.lock 中的版本号, 他仍然会去读取 composer.json 中定义的依赖, 生成新的 composer.lock 文件

composer install 和 composer update 的选择

初始安装依赖优先使用 composer install, 因为他会去读取 composer.lock 文件, 按照精确的版本号拉取依赖。

不要轻易的使用 composer update 更新所有的依赖, 因为它会去读取 composer.json 中依赖,拉取满足条件的最新依赖包,很容易出现问题。

当更新某个依赖时,可以使用 composer update

composer update topthink/think-queue=2.*

3. composer require


composer require 用于引入新的扩展包, 并且会生成新的 composer.lock 文件

更新于:19天前
赞一波!

文章评论

评论问答