Composer的实用部分

原文: https://blog.csdn.net/xyz_dream/article/details/79094470





一. Composer

要了解和解决的问题


1.什么是composer ?

2.composer有什么用?为什么要使用composer?

3.常见的使用场景和实用的命令


1.1 什么是composer?

Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。 - 百度百科




简单说,假如接触前端知识的同学肯定知道npm。通过npm安装自己所需要的package.那么对这个概念就不会模糊了。是的,简单来说就是针对PHP的类似npm的软件。在Java中有maven,Javascript前端有npm,自然PHP中的composer,都是用于处理自己领域的包安装的功能。 不知道大家在没有使用composer安装包之前,常常要引入一个包的流程是这样的:




一般可能到github上搜索相应的package,然后通过Git或者直接下载Zip包,然后放入自己的项目。但是要引入到项目需要自己处理require进来,假如你点都不了解这个包,好的,你的花时间去看看是怎么个引入方法。之后你运气很好,该包没有引入其他依赖。如果依赖与其他包,但是原作者并没有把依赖放在zip里面,那你惨了。你又得去搜索对应的依赖包……。如此反复循环,假设一个包依赖于很多包,那对你的工作量来说无疑是灾难性的。并且这些工作时间纯属浪费。


1.2 composer有什么用?为什么要使用composer?

好的,通过上面你已经知道传统的方式似乎对于小型项目或者说你依赖的包不够复杂的情况下,完全没有任何问题。使用composer简直是杀鸡用牛刀,大炮打蚊子。但是考虑一下,当你的项目是企业级的,你所依赖的包不仅仅那么小。所以到了composer发挥用武之地了。

遵循把包放到composer进行管理的用户都要把包放到packagist上面去,这个是官方包的仓库。在这个网站你可以搜索到你想要安装的包,前提是包的作者把该包放到packagist上进行管理。现在你已经知道composer的好处了吧,所有包之间的依赖关系你都不用管,你只要一个命令,说”我要引入xx包”,后面的事情你别管,安心的在PHP项目直接require vendor/autoload.php 完毕。现在包的内容你都可以使用了。 通过composer你安装一个复杂包的时间绝对超过5分钟,但是假设是自己去慢慢搜索包和依赖关系,整合到项目,有你忙的。运气好的能整合成功。运气差的,告诉你,有时候你的这条路就是死的。


1.3 常见的使用场景和实用的命令

现在。让我们看看怎么使用composer呢? 直接上composer国内镜像库这里有简易的教程。关于在Windows上,Linux上安装的方式。其实在Linux上安装就简单的一条命名


安装命令: curl -sS https://getcomposer.org/installer | php &&

mv composer.phar /usr/local/bin/composer



替换为中国镜像命令: composer config -g repo.packagist composer https://packagist.phpcomposer.com


在控制台输入 : composer -V


能显示出composer版本信息,恭喜顺利完成安装composer.




打开packagist网站,搜索想要下载的包的名称。例如我们项目需要一个 monolog/monolog的包。


引入命令: composer require monolog/monolog


等待安装完毕即可。此时,在当前目录下会多出一个composer.json composer.block vendor目录,monolog包此时就在vendor目录下面。并且和之前所说的,存在一个autoload.php。只需要在项目require “./vender.autoload.php” 就可以把包引入到项目了。不用你管其它没有意义的事情。




composer.json文件是表明你所要安装的包的信息,具体可以在网上有很多教程观看,很简单,这里就不一一赘述。我们刚才的composer require 命令其实就是把我们包的信息先写入到composer.json文件里面,然后composer自动帮我们 执行了


安装命令: composer install




composer.lock 锁文件是包含了我们当前项目的包的情况。默认composer先到这个文件把之前的包做操作,不管composer.json。只有在composer.lock不在的时候,composer再去查看composer.json获取包的信息。


更新命令:composer update


移除包命令: composer remove package-name


这些应该是常用和实用的命令。一个包安装无非就是真三改查,花费太多时间去研究也不值得。有时间的时候再去看看就可以了。


2 .杂谈


以前学习PHP一开始就没有composer的概念,后来一直听过但是没怎么使用。可能是项目相对比较小吧,呵呵。但是其实花点时间,也不多一个小时足够看看就能会用了。还是有点好处的。一个连composer都不知道和使用的程序员,那肯定不是一个合格的phper程序员。本次的博客也是使用markdown第一次写的博客,不知道效果怎么样,也是刚学着用的。写得不好或者有纰漏,请大家海涵和指正。