安装和使用Composer
Composer是PHP的依赖管理工具,通过composer.json定义和管理项目依赖,支持自动加载功能以简化类加载,并允许运行自定义脚本,是现代PHP开发的重要工具。
安装前提
已安装PHP,且版本不低于PHP 5.6。若未安装,您可以参考安装PHP文档介绍安装。
PHP已开启openssl扩展。
Composer安装
您可以根据操作系统的不同,按照以下步骤安装 Composer。
Windows
下载Composer安装程序。
访问Composer官网,在Windows Installer中单击Composer-Setup.exe下载。
运行安装程序并按提示操作。
验证是否安装成功。
同时按下
Win+R
键,输入cmd
后按回车键打开命令行,在命令行输入composer -V
,如果出现如下所示提示,则表示安装成功。Composer version 2.7.7 2024-06-10 22:11:12 PHP version 7.4.33 Run the "diagnose" command to get more detailed diagnostics output.
Linux
您可以执行以下命令安装 Composer:
Alibaba Cloud Linux/CentOS
sudo yum install -y composer
Ubuntu/Debian
sudo apt install -y composer
您可以使用命令
composer --version
检查是否安装成功。如果出现如下所示提示,则表示安装成功。Composer version 1.10.27 2023-09-29 10:50:23
macOS
您可以执行以下命令安装 Composer:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
您可以使用命令
composer --version
检查是否安装成功。
Composer使用
安装依赖
install命令
在项目的目录下创建一个composer.json文件,文件描述了项目的依赖关系。文件格式如下:
{ "require": { "alibabacloud/dysmsapi-20170525": "4.1.*" } }
以上文件表示需要下载从4.1.0开始的任何版本的alibabacloud/dysmsapi-20170525。运行以下命令即可安装依赖包:
composer install
require命令
也可以使用require命令快速地安装一个依赖而不需要手动在composer.json里添加依赖信息:
composer require alibabacloud/dysmsapi-20170525
Composer 会先找到合适的版本,然后更新composer.json文件,在require中添加alibabacloud/dysmsapi-20170525包的相关信息,再把相关的依赖下载下来进行安装,最后更新composer.lock文件并生成php的自动加载文件。
更新依赖
update 命令用于更新项目里所有的包,或者指定的某些包:
# 更新所有依赖
composer update
# 更新指定的包
composer update alibabacloud/dysmsapi-20170525
# 更新指定的多个包
composer update alibabacloud/dysmsapi-20170525 alibabacloud/credentials
# 还可以通过通配符匹配包
composer update alibabacloud/*
需要注意的是,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。
移除依赖
remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除:
composer remove monolog/monolog
查看已安装包列表
composer show --installed
切换镜像源
默认情况下,Composer使用Packagist官方源。由于中国内地的网络环境问题,建议配置Composer使用中国内地镜像源,以提高下载速度及稳定性。
全局切换为中国内地镜像(如阿里云):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消全局镜像配置:
composer config -g --unset repos.packagist
仅当前项目使用中国内地镜像:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消当前项目镜像配置:
composer config --unset repos.packagist
版本约束
精确版本
明确指定Composer依赖的具体版本。例如,通过执行命令composer require alibabacloud/dysmsapi-20170525 4.1.2
,表示安装4.1.2
版本。
范围
通过使用比较操作符来指定包的范围,这些比较操作符包括:>、>=、<、<=、!=
。同时,可以定义多个范围,多个范围之间支持逻辑与(空格或逗号)和逻辑或(||
),逻辑与优先级更高。
composer require alibabacloud/dysmsapi-20170525 >=4.1
表示安装大于等于4.1.0版本。composer require alibabacloud/dysmsapi-20170525 >=4.1 || <4.2
表示安装任何4.1.X版本。
通配符(*)
允许次版本或补丁版本的更新,但不会跨越主版本。例如,执行命令composer require alibabacloud/dysmsapi-20170525 4.1.*
表示安装任何4.1.x
版本(即>=4.1.0 <4.2.0
)。
波浪号(~)
允许从指定版本开始的所有补丁和次版本更新,但不会跨越主版本。例如,执行命令composer require alibabacloud/dysmsapi-20170525 ~4.1.3
表示安装版本范围为>=4.1.3
且<4.2.0
。
折音号(^)
允许所有非破坏性更新(包括次版本和补丁级别),但禁止主版本升级。例如,执行命令composer require alibabacloud/dysmsapi-20170525 ^4.1
表示安装版本范围为>=4.1.0
且<5.0.0
。