PHP开发PHP经验分享程序员

【PHP】Composer 的基本使用以及存在价值的理解

2020-04-15  本文已影响0人  phpworkerman

Composer 的起源

Composer 是一款 服务于 PHP 生态系统的安装包依赖管理工具,由 Jordi BoggianoNils Aderman 创造,该工具基于命令行操作,所以不喜欢命令行的人还是需要时间适应的。

Composer 的意义

PHP 发展多年,产生了很多优秀的轮子,对于生产都有着很大的帮助,成为了项目中不可或缺的存在。而引入管理这些第三方类库,在早期完全是 zip 下载,解压到目录中,再进行命名空间的引入使用,团队之间也是通过包的复制粘贴文件来达到使用相同的类库,并且不同类库之间还会存在依赖关系,如果当前类库依赖的另一方类库不存在就无法运行,在引入类库的数量达到很多时,类库管理版本升级就会造成很大的困扰,不好进行统一,Composer 的出现解决了这些问题,它会根据配置文件自动加载类库,以及类库的依赖,并配置自动引入,方便更新当前类库的版本,一切只需要简单的配置和命令行的操作。

Composer 的安装

@php %~dp0composer.phar %*

打开命令行输入命令 composer -v,如出现已下提示,说明 Composer 安装并配置成功

composer_line
2.打开电脑系统环境变量配置,选择系统环境,修改PATH,将 Composer 文件执行路径放入并保存

Composer 的基本使用

{
    "require": {
        "monolog/monolog": "1.0.*" #require 包含的是名称:供应商名称/包名称
    }
}

在拥有 composer.json 文件的目录下,打开命令行输入以下代码,Composer 将开始自动下载所需要的依赖

composer install

在依赖安装后,将会在 composer.json 同级目录下生成 composer.lock 锁文件,该文件主要作用是约束当前包的版本。

composer update  #升级当前所有依赖
composer vendor/package  #更新指定包

Packagist 与 Composer 的关系

Composer 的包都是通过下载得到的,而存放这些资源的地址就是 Packagist ,Packagist 管理着包,而包的源地址是 VCS(线上版本控制系统),当 Composer 下载请求到达 Packagist 时,会根据包上传时指定的源路径去下载,而 Packagist 可以理解为一个资源汇总的门户网站。因为这个门户网站可能被墙,所以国内相应的产生了 中国全量镜像,可以对资源进行镜像存储,只需要将 Composer 配置修改就可以获取不受限制的镜像资源。

Composer 生产环境注意事项

实际生产中,大多数公司都会采取 GIT,SVN 等版本控制工具来管理代码,Composer 下载的包尽量不要放在版本控制中,因为这些包通常体积较大,比如一个 AWS 的SDK 就包含了几千个文件,这对于版本库的管理很不方便,推荐做法是在项目中保留 composer.json 确定引入的依赖包,通过 composer.lock 锁文件确定包的版本,然后各自在终端里下载所需依赖,这也是官方推荐做法。

上一篇下一篇

猜你喜欢

热点阅读