Composer使用 —— 常用命令和版本约束

常用命令#

require命令#

我们还可以使用require命令快速的安装一个依赖而不需要手动在composer.json里添加依赖信息。

Copy Highlighter-hljs
$ composer require monolog/monolog

Composer会先找到合适的版本,然后更新composer.json文件,在require那添加monolog/monolog包的相关信息,再把相关的依赖下载下来进行安装,最后更新composer.lock文件并生成php的自动加载文件。

update命令#

通过update命令,可以更新项目里所有的包,或者指定的某些包。

Copy Highlighter-hljs
# 更新所有依赖 $ composer update # 更新指定的包 $ composer update monolog/monolog # 更新指定的多个包 $ composer update monolog/monolog symfony/dependency-injection # 还可以通过通配符匹配包 $ composer update monolog/monolog symfony/*

需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。例如如果composer.json里包的版本约束为^1.10,而最新版本为2.0。那么update命令是不能把包升级到2.0版本的,只能最高升级到1.x版本。关于版本约束请看后面的介绍。

remove命令#

使用remove命令可以移除一个包及其依赖(在依赖没有被其他包使用的情况下):

Copy Highlighter-hljs
$ composer remove monolog/monolog

search命令#

使用search命令可以进行包的搜索:

Copy Highlighter-hljs
$ composer search monolog

show命令#

使用show命令可以列出项目目前所安装的包的信息:

Copy Highlighter-hljs
# 列出所有已经安装的包 $ composer show # 可以通过通配符进行筛选 $ composer show monolog/* # 显示具体某个包的信息 $ composer show monolog/monolog

版本约束#

前面说到,我们可以指定要下载的包的版本。例如我们想要下载版本1.19的monolog。我们可以通过composer.json文件:

Copy Highlighter-hljs
{ "require": { "monolog/monolog": "1.19" } }

然后运行install命令,或者通过require命令达到目的:

Copy Highlighter-hljs
$ composer require monolog/monolog:1.19 # 或者 $ composer require monolog/monolog=1.19 # 或者 $composer require monolog/monolog 1.19

基本约束#

精确版本

可以指定具体的版本,告诉Composer只能安装这个版本。但是如果其他的依赖需要用到其他的版本,则包的安装或者更新最后会失败并终止。

例子:1.0.2

范围

使用比较操作符你可以指定包的范围。这些操作符包括:>>=<<=!=

通配符

可以使用通配符去定义版本。1.0.*相当于>=1.0 <1.1

波浪号~

Copy Highlighter-hljs
~`操作符的用法:`~1.2`相当于`>=1.2 <2.0.0

版本稳定性#

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable

posted @   caibaotimes  阅读(312)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
CONTENTS