Composer 的学习

一、Composer简介

Composer 是PHP用来管理依赖关系的工具。

使用 composer 的必要前提有:

1、PHP版本要高于PHP5.3.2

2、PHP支持OpenSSL扩展

3、安装有Git 版本管理工具

二、Composer引入第三方类库的流程

开始 --------->  在 Packjst 网站中找到所需依赖  ------->  使用 composer 安装  --------> 在项目中自动引入后直接使用  ------->  结束

三、Composer原理

Composer 工具除了内置了命令行管理,还整合了下载器、安装器。在项目中,开发者只需要通过命令输入要安装的依赖包,Composer会自动下载和安装。

一般情况下,安装包的数据(主要是 zip 文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。
然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。
“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install 以及 composer update 的过程,并且更加快速、稳定。因此,即使 packagist.orggithub.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。
 

四、Composer 命令

composer require 命令 增加新的依赖包到当前目录的 json 文件中

自动生成的目录结构:

项目根目录

  - vendor 目录 

    - composer 目录

    - 第三方类库目录

    - ...

    - autoload.php (自动加载的文件

  -composer.json 文件

  -composer.lock 文件

1、composer.json 文件

require 定义了要引入的包名称(phpmailer/phpmailer)和版本号(^6.0)

获取包名可以用 composer search 命令,或者直接在 Packagist 网站上进行检索

默认安装的都是稳定版(stable),只需要在 composer.json 中添加 “minimum-stability” : “stable”

2、手动安装第三方包

更新composer.json 文件

composer.json文件格式是基于 JSON,要求比较严格,在手动更新前需要注意以下两点:

  • 只支持双引号作为定义字符串
  • 配置项最后一个不能有“,”符号

执行安装命令:

composer  install

 Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.

3、composer.lock 文件

在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock文件,这将锁定该项目的特定版本。

执行composer install 命令时,会自动检查锁文件是否存在,如果存在,将它下载指定的版本(而会忽略composer.json 文件中的定义,如更新的版本号等)。

这样,当任何人建立项目时,都将下载 composer.lock 中记录的版本号。

若需要更新依赖的版本号,可以使用命令:

composer update

 

执行完毕后,查看composer.lock 文件中的版本号已经发生了变更。

 Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file

五、提交自定义包到Composer

 1、本地创建Composer 包

Composer的代码都是托管在 GitHub 上的,所以开发者需要对 Git 的操作比较熟悉,并且 Composer 本身对类库的提交也有一些辅助性的工具,可以减少开发者出错的几率。

操作过程主要有:

  • 1、在GitHub 上创建应用仓库
  • 2、使用Composer在本地初始化
  • 3、在本地开发类库,并与Composer建立对应关系
  • 4、提交到 GitHub 应用仓库
  • 5、提交GitHub仓库地址到Packagist后完成发布

2、提交依赖包到Composer Packagist

  • 1、推送本地代码到GitHub
  • 2、提交到Packagist
  • 3、发布正式版本
  • 4、安装使用

 

六、Composer镜像

PHP Composer国内镜像:
阿里云
腾讯云
华为云

七、Composer 全局安装

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

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

https://developer.aliyun.com/composer

原文地址:https://www.cnblogs.com/cshaptx4869/p/10520263.html