PECL、PEAR、phpize、composer 的区别和联系

2018-5-6 liyangweb.com 李杨 PHP

首先,我们先分别了解一下这四个东西的官方介绍。

PECL:

PECL是PHP扩展的存储库,提供了所有已知的扩展和托管设施的目录,用于下载和开发PHP扩展。

PECL使用的包装和分配系统与它的姐妹PEAR共享。

PEAR:

PEAR是一个可重用PHP组件的框架和分发系统。

phpize:

用 phpize 编译共享 PECL 扩展库。

有时候不能用 pecl 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。

Composer:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。


通过上面的介绍,我们大致知道了,PECL、PEAR、phpize、Composer都是为了给PHP提供扩展而生的。PECL的介绍中甚至还说和PEAR是姐妹,而phpize说自己是在PECL无法使用的时候来使用的,有点剪不断理还乱的意思,不过Composer好像有点略显孤单。


下面我们来详细说说他们之间的联系。

先从phpize说起,phpize是一些高手们使用C语言开发的PHP扩展,要使用这个,我们要下载到它的源码包,那么源码从哪下载呢?下面的网址就是phpize源码下载的地方http://pecl.php.net,这里面出现的扩展,都是被PHP官方认可的扩展,如果你要安装的扩展不在这个网站里面,那么就要自己找到扩展的开发者,要到源码。得到源码后,使用phpize准备编译环境,得到configure文件后,进行编译、安装,得到xxx.so文件。xxx.so文件就是我们最终要得到的文件,把它放入到PHP的扩展目录,并在php.ini文件中增加extension=xxx.so,重启PHP,就可以看到刚刚装的扩展了。

上面也说到了,phpize一般是在PECL不能用的时候才用的,那么PECL什么时候可以用,什么时候不能用呢?原则上,只要能在http://pecl.php.net这个网站上找到的扩展,都是可以用PECL来安装的,但是由于某些电脑上可能没有安装PECL,可能没有外网,可能由于其他网络策略限制,可能在中国(呵呵),等等原因,这时候PECL就不能用了。

现在来说说PECL的妹妹PEAR,PECL是用C语言写的,编译后可用,效率比较高,PEAR里的代码是用PHP写的,效率会稍微差一点,但是有些时候,我们买的是虚拟主机,自己没有修改配置的权限,这时候PEAR就很有用了,PEAR既可以用命令安装,也可以下载代码自己引入。

最后轮到孤单的Composer登场了,上面三位都有点官方的背景,身份显赫。而Composer就是一个新生的工具了,他的存在主要依赖github.com和packagist.org,使用Composer安装的扩展,一般都是一些具体功能的扩展,而不是底层库。虽然Composer出生晚,出身差,但是现在Composer已经成为了最火的PHP包管理工具,还不会的小伙伴们速速学起来!

最后总结一下:

当我们需要底层扩展,比如Redis扩展、MongoDB扩展,首选PECL,因为这个方便,一条命令搞定,如果PECL不能用,就用phpize,如果没有就看看PEAR,如果PEAR也没有,那就找找Composer。

如果我们找的是具体功能模块,比如PHPExcel、RBAC,那一定Composer首选,别无他选!

最后的最后,再插一句我自己的观点”PEAR已经很少人在用了,上面也很难找到活跃的项目了“。

发表评论:

Powered by emlog 冀ICP备13011830号-1