安装和使用Composer

更新时间:

ComposerPHP的依赖管理工具,通过composer.json定义和管理项目依赖,支持自动加载功能以简化类加载,并允许运行自定义脚本,是现代PHP开发的重要工具。

安装前提

  • 已安装PHP,且版本不低于PHP 5.6。若未安装,您可以参考安装PHP文档介绍安装。

  • PHP已开启openssl扩展。

    如何检查是否已开启openssl

    执行以下命令,如果输出中包含openssl,则表明该扩展已成功启用。

    • Windows

      php -m | find "openssl"
    • Linux

      php -m | grep openssl

    若发现 openssl 扩展未开启,可以通过以下步骤开启:

    1. 找到PHP的配置文件 php.ini(通常位于 PHP 安装目录下)。

    2. 打开php.ini文件,搜索包含 openssl 的扩展行(如 extension=opensslextension=php_openssl.dll 或 extension=openssl.so)。

    3. 如果该行前面有分号(;),将删除分号取消注释。

    4. 保存文件并重新检查是否生效。

Composer安装

您可以根据操作系统的不同,按照以下步骤安装 Composer。

Windows

  1. 下载Composer安装程序。

    访问Composer官网,在Windows Installer中单击Composer-Setup.exe下载。

    image

  2. 运行安装程序并按提示操作。

  3. 验证是否安装成功。

    同时按下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

  1. 您可以执行以下命令安装 Composer:

    • Alibaba Cloud Linux/CentOS

      sudo yum install -y composer
    • Ubuntu/Debian

      sudo apt install -y composer
  2. 您可以使用命令 composer --version 检查是否安装成功。如果出现如下所示提示,则表示安装成功。

    Composer version 1.10.27 2023-09-29 10:50:23

macOS

  1. 您可以执行以下命令安装 Composer:

    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    chmod +x /usr/local/bin/composer
  2. 您可以使用命令 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