30分钟了解php依赖管理工具Composer
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
撰写本文的初衷:本人是一名phper,某天在开发微信时需要用到easywechat这个集成sdk,通过这个了解了composer,但是看composer的中文文档是在是看的云里雾里,之后在网上找资料和视频,最终看到了后盾网上的向军老师录制的视频(http://pan.baidu.com/s/1mimNBHu),看完之后顿时开悟,在此感谢向军老师。
阅读本文需要具备如下条件:
1,一个github账户。
2,php版本在5.6以上。
正文开始:
1.首先通过两张图片先了解一下github.com,packagist.org,composer这三者的关系:
![](https://img.haomeiwen.com/i4013888/e3670537ba58cb30.png)
![](https://img.haomeiwen.com/i4013888/07fb5d18c175abbd.png)
github.com上的项目相当于是我们开发的一个软件,之后我们需要将这个项目关联到packagist.org(相当于软件的应用商店)中,关联之后。
其他人在他们的服务器上可以使用composer去packagist.org中下载使用我们项目。
2.在windows系统中安装composer客户端
*第一步,需要将php的可执行文件配置到环境变量中,操作如下:
![](https://img.haomeiwen.com/i4013888/e19dad631249432e.png)
![](https://img.haomeiwen.com/i4013888/855eed8d2b0add2c.png)
![](https://img.haomeiwen.com/i4013888/44c4c2ae1542bfe6.png)
![](https://img.haomeiwen.com/i4013888/05bda84167fe9486.png)
我的php.exe可执行文件在E:\app\phpstudy\php55n文件中,所以将这个路径放到系统变量中。
之后在命令行中执行php,如果不报错说明配置成功,成功如下:
![](https://img.haomeiwen.com/i4013888/93c17465a32425e3.png)
配置好环境变量之后开始安装composer客户端,一直下一步下一步就行了。。。
![](https://img.haomeiwen.com/i4013888/1e0261e767f99bcf.png)
![](https://img.haomeiwen.com/i4013888/304b0fd6581a7bcf.png)
![](https://img.haomeiwen.com/i4013888/f2aeaea1cfea312b.png)
![](https://img.haomeiwen.com/i4013888/d522802070186ee7.png)
![](https://img.haomeiwen.com/i4013888/34b6070e0fca8599.png)
![](https://img.haomeiwen.com/i4013888/0ae762ba376e0177.png)
![](https://img.haomeiwen.com/i4013888/41a79d13c8f8771b.png)
安装完成之后在命令行中执行composer,如果不报错则表示安装成功,成功截图如下:
![](https://img.haomeiwen.com/i4013888/2fdf32c871470c80.png)
3.将github.com中的项目关联到https://packagist.org/中
第一步:在本地clone一个github.com中的项目,之后在命令行中进入项目的根目录,之后执行composer init
![](https://img.haomeiwen.com/i4013888/79b7683de5b1acb6.png)
![](https://img.haomeiwen.com/i4013888/1c3304d203bef537.png)
![](https://img.haomeiwen.com/i4013888/3244db79636795ea.png)
第二步(可跳过):使用中国镜像,命令如下:(如果开启了vpn可以不使用中国镜像)
composer config repo.packagist composer https://packagist.phpcomposer.com
![](https://img.haomeiwen.com/i4013888/03ef544fd73eac84.png)
第三步:composer install
命令从当前目录读取composer.json文件,处理了依赖关系,并把其安装到vendor目录下。
![](https://img.haomeiwen.com/i4013888/995aae00b852fc1c.png)
第四步:在packagist.org中提交github.com中的项目
![](https://img.haomeiwen.com/i4013888/5b58f3535ae00e11.png)
![](https://img.haomeiwen.com/i4013888/388e25fc1107afcc.png)
![](https://img.haomeiwen.com/i4013888/9096d2ab79d1eb5e.png)
![](https://img.haomeiwen.com/i4013888/8fc2faef6d72b776.png)
4.在本地使用composer安装项目
composer create-project qiyun004/composer01 a1 dev-master --prefer-dist
截图如下:
![](https://img.haomeiwen.com/i4013888/4f7912ef43275964.png)
这样在本地就生成了一个项目。
5.将github的推送实时更新到packagist中
场景:有一个项目关联到packagist中,但是这个项目会不断的就行迭代,如果我们不及时的更新packagist,那么其他人从packagist拉取项目的时候有可能不是最新版本。解决方法有两种:
第一种:项目的创建人每次修改了github后都到packagist中点击一下update
![](https://img.haomeiwen.com/i4013888/7fa93c4c8b8b10fe.png)
第二种(推荐):将github的推送实时更新到packagist中
首先到packagist中获取token
![](https://img.haomeiwen.com/i4013888/4019cd87e5a427c2.png)
![](https://img.haomeiwen.com/i4013888/c27976be3c9480af.png)
之后到github中对项目进行配置
![](https://img.haomeiwen.com/i4013888/c00758c556f99ec8.png)
![](https://img.haomeiwen.com/i4013888/ebb4433a2ede5a87.png)
![](https://img.haomeiwen.com/i4013888/a77964af1fb37541.png)
![](https://img.haomeiwen.com/i4013888/9043e94a6490677a.png)
![](https://img.haomeiwen.com/i4013888/5d4a6ddcbcea92ec.png)
![](https://img.haomeiwen.com/i4013888/abfd75702ebc47f6.png)
完成。
上面就是composer的简单介绍,希望能帮助到您。