ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
PHP的作曲家?什么梗? 来……duo,rui,me,fa,suo,la,xi…… ![](https://img.kancloud.cn/d1/06/d106802d3c578a4cb553f6d3de5f0a63_800x340.png) ## (一)前言 多年前有一天,网上有关PHP出来了一个叫composer的名字,composer英文翻译过来就叫“作曲家”,一开始大家都对这个名字特别陌生,后来渐渐都熟悉了,它无非就是一个公共类库,有了这个库,大家开发都统一了,也更方便了…… 它的官网地址: https://getcomposer.org/ 多年来大家都乐此不疲的用着,发现它确实给工作带来了不少的便利:直接引用类库,实现功能,我们只专注一些业务的开发。 ## (二)验证码库举例 举例来说,我们开发一个登录页面,一般情况下包含以下几部分: ``` 1、M: 连接数据库 2、V : 登录静态页面(有验证码) 3、C: 登录控制器(验证码的加载 和验证操作) ``` 在登录部分,有关于验证码的加载的显示,以前我们怎么操作呢? 1、了解关于验证码宽、高、大小、干扰、生成图片码(英文、中文、数字、混合码等)-或者网上找一个现成的好的类库 2、引用类库 操作这一系列过程需要几个小时 现在写这个类库比较麻烦,现在只要以下几步就搞定 1、 `composer require 验证码类库地址`, 配置`相关参数`就可以实现了(PS:验证码类库就是在官网找人气最高的就可以了) 2、引用类库 这无疑对开发是一种进步,是程序员的一种进步!我们更多的关注业务本身而不用关注类库本身。composer我们也可以把它称为 类库包,大家都喜欢用! 但这种开发一个缺点是:我怎么找到合适的库呢?因为PHP的版本太多了,同时验证码的版本也一直在更新! ## (三)依赖库 验证码的库说到这儿,因为它相对简单,很多时候我们引用一个库,会发现依赖库太多了,我们拿目前微信最常用的库 overtrue/wechat 为例来说明 下图是引用方式 ![](https://img.kancloud.cn/1b/8f/1b8fc7e0b9d0a373ae1ca4483b7c486d_483x173.png) 下图是安装这个库用到的依赖类包的过程 ![](https://img.kancloud.cn/0f/26/0f265b1c912be377b73a04c9ab9ef565_1317x1005.png) 从安装过程中,我们可以看到有一句话: Package operations: 31 installs, 0 updates, 0 removals,即:安装31个包,除了本身的1个包以外,依赖了30个包。 >30个包,这得有多少行代码啊?我们都了解这些代码了解吗?不了解我们都敢用吗? 答:不管多少代码,我们都得用啊,因为它方便啊,它都是前人总结出来的结果! ## (四)困惑 我们开发时偶尔会发现一些问题 我们安装库1的时候,引用 `A、B、C、D`库 我们安装库2的时候,引用 `A、E、F、G`库 那么 A库是公共都引用的库,表面是没有问题的? 但是安装`库1`用的是`A1.0`,安装库2的时候用的是`A2.0`,这样的问题该怎么解决?