首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Composer 使用使用详解

Composer介绍

Composer 是 PHP 的一个包依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。Composer 可运行在 Windows 、 Linux 以及 OSX 平台上。

Composer安装

1.Windows安装Wondows 平台上,我们只需要下载 Composer-Setup.exe 后,一步步安装即可。需要注意的是你需要开启 openssl 配置,我们打开 php 目录下的 php.ini,将 extension=php_openssl.dll 前面的分号去掉就可以了。

安装完成之后,检测是否安装成功。可以使用

命令查看,如下图:2.Linux安装

3.Mac Os安装

4.如何切换composer镜像源现在阿里处理自己的composer镜像源,并且能够做到与Packagist官网实时同步,推荐使用阿里的composer镜像源.

5.composer更新composer的更新可以使用自身的命令来更新

Composer使用

Composer的使用,我们常见的几个操作如下:

1.composer install当我们的composer.json文件中增加了项目的依赖关系,如下:

此时我们使用 composer install时,会自动根据包中的依赖关系,来安装相对应的包。

2.composer update该命令会根据composer.json配置文件中包依赖以及相应的版本,更新包的版本,但是该命令会将所有的包都更新到最新版本,在实际的项目中需要谨慎使用,尤其是在生产环境上面。

3.composer require第1点中,我们讲到了如何去根据composer.json配置文件中的包依赖配置,安装对应的包。该命令可以不需要根据配置文件,而是去手动安装一个包。安装完之后,对应的依赖配置会自动添加在composer.json配置文件中。

4.composer remove该命令可以移除指定的包依赖,例如我们不需要依赖某个包直接使用该命令+包名

同样的,执行该命令之后,composer.json配置文件中的包依赖会自动删除,无需我们手动操作。

5.composer show该命令主要是为了查看当前项目已经安装的包相关信息。

Composer.json与Composer.lock的区别是什么

我们在使用composer的过程中会发现,当我们执行composer update等命令,会发现无意中多了一个composer.lock文件。那这个文件主要是干什么的呢?该文件主要是管理包版本使用的,当我们在使用composer update命令时,composer会自动根据composer.json的包版本依赖,生成对应的composer.lock文件,当我们下次在执行composer命令的时候,首先也会去读取composer.lock文件的内容。

Composer版本约束

在我们使用composer安装包时,不得不考虑的就是一个版本问题,因为不同的版本,存在兼容性问题,因此我们在使用该工具安装包时需要特别的注意包版本,如果使用不当很容易导致项目因为包版本问题瘫痪。常见的几种如下:1.精准版本明确要安装到那个版本,如需要安装包的版本是1.2.3

2.通配符既满足指定范围即可,如下范围在5.0到5.1之间

3.范围范围常用的操作符有>,>=,

4.波浪符 ~该操作符限制最小版本号。

如~1.2与>=1.2 =1.5.6

如^1.2就等于>=1.2 =1.2.3

语义化

什么是语义化呢?说的简单一点即是版本号管理。我们的包一般分文如下格式组成: 如上面的例子中,我们都提到了一些包的版本号是x.x.x。第一位就是主版本号,第二位就是次版本号,第三位就是针对一些bug修复来的修复版本号。具体的可以参考https://semver.org/lang/zh-CN/

Composer使用优化

1.composer 加载类型composer加载类型包括classmap,psr-0,psr-4,file.psr-0逐渐的被抛弃了,由于一些老项目还在使用该规则,因此部分项目仍在使用。大多数的是使用psr-4。classmap是包文件的映射处理,下面有讲。file主要加载一些helper的操作。1.composer dump-autoload -o该命令会根据包的命令空间和路径生成文件映射,当去加载包的时候,会根据映射去加载包文件。这样会加快我们的包文件访问速度。当我们执行了该命令,可以查看如下如的界面。被圈出来的就是类映射配置。

composer具体怎么去处理这个加载顺序逻辑,我们可以通过查看composer加载类的处理顺序。下图中圈出的方法,首先就是去加载classmap,没找到在去加载psr-4。

2.composer dump-autoload -a该命令主要的是功能是,当在我们1中执行了命令,会生成映射文件。如果当去加载映射文件没有找到时,则提示包文件不存在。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190908A0CGB900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券