置顶

Composer的安装和使用详解

作者:勇康博客网 | 分类:PHP | 浏览:1402 | 日期:2021年07月29日

linux环境

下载

curl -sS https://getcomposer.org/installer | php

下载后设置环境变量

mv composer.phar /usr/local/bin/composer

修改权限

mv composer.phar /usr/local/bin/composer

查看版本

composer -v


windows环境下载安装

下载安装

安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号,建议7.3.4以上php版本。

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

嫌麻烦的朋友也可以直接点击下方安装包下载安装,效果都是一样的

Composer-Setup.rar

查看版本

命令行窗口运行如下指令,若正常显示版本号则表示安装成功

composer --version

修改Composer镜像源

众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”,这就是为什么要修改Composer镜像源为国内镜像源

查看当前镜像源

composer config -g repo.packagist

全局修改(以下两个镜像源看个人喜好)

composer config -g repo.packagist composer https://packagist.phpcomposer.com

或:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

单个项目配置

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

取消Composer镜像源修改

composer config -g --unset repos.packagist

Composer常用指令

升级Composer版本(可能需要先还原镜像源为国外镜像源)

composer self-update

查看全局配置

composer config -gl

install命令

composer install
  • composer install是从composer.lock读取第三方组件及其版本,并将其安装到vendor目录下。
    如果composer.lock文件不存在,则读取composer.json第三方组件及其版本,然后安装到vendor目录下

  • update是直接从composer.json获取第三方组件及其版本,然后更新composer.lock文件。
    如果依赖的第三方组件有版本更新,update会将最新的版本安装到vendor目录下,并更新composer.lock

  • 在生产环境下,直接使用composer update命令是有较大风险的,因为可能存在测试阶段使用了版本的第三方组件库,在上线打包的时候执行了composer update命令,导致第三方组件更新未经测试直接发布的问题出现。

require命令

除了使用 install 命令外,我们也可以使用 require 命令快速的安装一个依赖而不需要手动在 composer.json 里添加依赖信息:

composer require monolog/monolog

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

update命令

update 命令用于更新项目里所有的包,或者指定的某些包:

# 更新所有依赖
$ 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 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除:

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 0 updates, 2 removals
  - Removing psr/log (1.0.2)
  - Removing monolog/monolog (1.23.0)
Generating autoload files

search命令

search 命令可以搜索包:

composer search monolog

该命令会输出包及其描述信息,如果只想输出包名可以使用 --only-name 参数:

composer search --only-name monolog

show命令

show 命令可以列出当前项目使用到包的信息:

# 列出所有已经安装的包
$ composer show

# 可以通过通配符进行筛选
$ composer show monolog/*

# 显示具体某个包的信息
$ composer show monolog/monolog


发表评论

取消
微信二维码
微信二维码
支付宝二维码