composer安装和常用操作

前言

在github还没有兴起的年代,我们是需要到工具的官网下载代码,比如jquery。然后放到我们自己的项目目录里,再在我们的页面中使用。
但是…当一个网站依赖的包越来越多,
我们会发现这是一件非常麻烦的事情:
安装新包,代码目录管理等问题
升级依赖包,只能手动替换文件

安装过程发现某个包需要依赖于另一个包,那我们又要开始安装前面的包…
哪怕是每个开源包都有自己的官网,也还是需要用户去下载安装。
即使是有一个类似github的大仓库,可以存放所有的项目,实现一站下载。
但不同依赖包之间的关系也还是需要手动维持,包与包之间的关系有可能是相互依赖,也可能是冲突的。
比如A包需要的PHP版本是小于7的,而B包需要的PHP版本是大于等于7的,那么你安装下来就是有冲突的,可能你在使用之前都没有注意环境的要求,直到遇到各种坑….
于是就有依赖包管理工具的诞生了,如前端使用的npm,java使用的maven,安卓的Gradle等等。在PHP中我们使用的工具叫Composer。
当我们需要加载一个新包的时候,我们只需要一条命令,工具就会自动构建安装,并且在安装之前如果检测到环境或者需要依赖其他包,管理工具也会做出相应的处理,比如提示终止、自动安装依赖包。
当我们需要更新包的时候,我们也只需要一条命令,就可以实现工具包的升级,在这过程也依然会检测新版本包需要的环境和依赖等。
所以说,依赖包管理工具 为我们在管理依赖包的工作上带来了极大的便利。

一、composer 是什么?

Composer 是一个命令行工具,它的作用就是帮我们的项目管理所依赖的开发包,属于依赖包管理工具。

composer 是php 安装新包,代码目录管理

二、使用步骤

1.window安装

1.1下载链接composer.exe

1.2下载好之后直接下一步
需要注意的是你需要开启 openssl 配置,我们打开 php 目录下的 php.ini,将 extension=php_openssl.dll 前面的分号去掉就可以了。
小皮面板安装的环境,要注意自己使用的PHP版本

1.3安装成功后,我们可以通过命令窗口(cmd) 输入 composer --version 或者 composer -v 命令来查看是否安装成功:
在这里插入图片描述1.4更换全局镜像 外网的镜像下载比较慢,可以跳过
接下来我们可以更改阿里云 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 -vvv require alibabacloud/sdk

遇到问题?

建议先将Composer版本升级到最新:

composer self-update

执行诊断命令:

composer diagnose

清除缓存:

composer clear

若项目之前已通过其他源安装,则需要更新 composer.lock 文件,执行命令:

composer update --lock

2.Linux 安装

Linux 平台可以使用以下命令来安装:

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

移动 composer.phar,这样 composer 就可以进行全局调用:

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

切换为国内镜像:

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

更新 composer:

composer selfupdate

composer 安装遇到问题:

composer -v
Unknown command: composer

解决办法
1:php的链接在/usr/local/bin/php中
2:cp composer /usr/bin/composer,将composer从下载的地址复制到/usr/bin/composer中
我的理解是bin没有找到对应的 composer
usr/local/bin 下的软链没有指到对应的位置
lrwxrwxrwx 1 root root 22 9月 2 09:53 php -> /usr/local/php/bin/php
3.给 权限

chmod +x /usr/bin/composer

3.Mac OS 系统

Linux 平台可以使用以下命令来安装:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version

切换为国内镜像:

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

更新 composer:

 composer selfupdate

三、composer 的简单使用

1.Composer install 的使用
要使用 Composer,我们需要先在项目的目录下创建一个 composer.json 文件,文件描述了项目的依赖关系。

文件格式如下:

{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

以上文件说明我们需要下载从 1.2 开始的任何版本的 monolog。
接下来只要运行以下命令即可安装依赖包:

composer install

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

composer require 项目名

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

3.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 版本。关于版本约束请看后面的介绍。

4.remove 命令
remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除:

composer remove 包名

5.search 命令
search 命令可以搜索包:

composer search 报名

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

composer search --only-name monolog

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

列出所有已经安装的包

composer show

#可以通过通配符进行筛选

composer show 包名/*

显示具体某个包的信息

composer show monolog/monolog

7.基本约束
7.1范围
通过使用比较操作符来指定包的范围。这些操作符包括:>,>=,<,<=,!=。

你可以定义多个范围,使用空格或者逗号 , 表示逻辑上的与,使用双竖线 || 表示逻辑上的或。其中与的优先级会大于或。 实例:

=1.0
=1.0 <2.0
=1.0 <1.1 || >=1.2
我们也可以通过使用连字符 - 来指定版本范围。

连字符的左边表明了 >= 的版本,如果右边的版本不是完整的版本号,则会被使用通配符进行补全。例如1.0 - 2.0等同于>=1.0.0 <2.1(2.0相当于2.0.*),而1.0.0 - 2.1.0则等同于>=1.0.0 <=2.1.0。

7.2通配符
可以使用通配符来设置版本。1.0.*相当于>=1.0 <1.1。

7.3波浪号 ~

我们先通过后面这个例子去解释 
~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.01.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0。
对于使用Semantic Versioning作为版本号标准的项目来说,这种版本约束方式很实用。
例如~1.2定义了最小的小版本号,然后你可以升级2.0以下的任何版本而不会出问题,因为按照Semantic Versioning的版本定义,小版本的升级不应该有兼容性的问题。简单来说,~定义了最小的版本,并且允许版本的最后一位版本号进行升级

7.4折音号 ^

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。
例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。
而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。
例子:^1.2.3

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

1.2 >1.2.0.0-stable
=1.2 >=1.2.0.0-dev

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。
minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小*-^-*九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值