一、简介
Composer
是PHP
是PHP5.3
以上的一个依赖管理工具,你可以在自己的项目中声明所依赖的外部工具库(libraries)
,Composer
会安装这些依赖的库文件Composer
默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。Composer
需要PHP 5.3.2+
以上版本,且需要开启openssl
。Composer
可运行在Windows
、Linux
、OSX
平台上。Composer
仅仅是一个依赖关系的管理,如同在iOS
开发中使用的CocoaPods
,前端开发中使用的NPM
。
二、安装
- 安装前需确保系统
PHP
版本在5.3
以上
$ php -v // 例如: dengzemiaodeMacBook-Pro:~ dengzemiao$ php -v PHP 7.1.23 (cli) (built: Feb 22 2019 22:08:13) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
- 查看
PHP
是否开启openssl
$ php -m ... openssl ...
手动安装
: Composer 文档 里面有安装流程,就按着文档敲几行命令就能安装成功,或者看这个 手动安装教程。Homebrew 安装
:通过 Homebrew 进行安装Composer
,这种方式安装Composer
属于全局安装,composer
命令可以在全局使用。
$ brew install composer • 1
$ composer -v ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.0.9 2021-01-27 16:09:27
三、镜像使用
- 全局镜像
- 设置,选一个镜像源使用即可
官方镜像源,下载慢
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 阿里云镜像源(推荐)
$ 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.json
文件,文件描述了项目的依赖关系。
{ "require": { "monolog/monolog": "1.2.*" } }
- 以上文件说明我们需要下载从
1.2
开始的任何版本的monolog
。 - 安装依赖包:
$ composer install
- 移除安装包
$ composer remove monolog/monolog
require
命令,除了使用install
命令外,也可以使用require
命令快速的安装一个依赖而不需要手动在composer.json
里添加依赖信息。
$ composer require monolog/monolog
Composer
会先找到合适的版本,然后更新composer.json
文件,在require
那添加monolog/monolog
包的相关信息,再把相关的依赖下载下来进行安装,最后更新composer.lock
文件并生成php
的自动加载文件。
五、其他常用命令
- 查看版本信息,以及所有命令介绍
$ composer -v
- 创建项目,创建一个名称为
test
的thinkPHP
项目
$ composer create-project topthink/think test
search
命令
$ composer search monolog
- 该命令会输出包及其描述信息,如果只想输出包名可以使用
--only-name
参数:
$ composer search --only-name monolog
show
命令:
// 列出所有已经安装的包 $ composer show // 可以通过通配符进行筛选 $ composer show monolog/* // 显示具体某个包的信息 $ composer show monolog/monolog
- 下载依赖(全局安装)
$ composer install
- 更新依赖
// 更新所有依赖 $ composer update // 更新指定的包 $ composer update monolog/monolog // 更新指定的多个包 $ composer update monolog/monolog symfony/dependency-injection // 还可以通过通配符匹配包 $ composer update monolog/monolog symfony/*
- 升级到最新版本,如果有则更新到最新版本
$ composer selfupdate
- 诊断命令
$ composer diagnose
- 清除缓存
$ composer clear
- 若项目之前已通过其他源安装,则需要更新 composer.lock 文件
$ composer update --lock
- 重新加载一次(例如:当在
Laravel
中删除了文件,会存在缓存,这个时候就需要重新加载一次清理掉缓存)。
$ composer autoload-dump // 可简写 $ composer dump