PEAR 是PHP扩展和应用仓库“PHP Extension and Application Repository”的缩写,官方网站为:https://pear.php.net/
。PEAR 目标是帮助开发者编写可移植、可重用的代码,并提供了一个在线的源代码仓库镜像和类库管理工具集。
它将PHP程序开发过程中常用的功能编写成类库,涵盖了各方面的技术实现:页面处理、数据库操作、文件操作、数据结构、数据缓存、网络协议(SMTP、POP3等)、WebService 等,用户可以通过
pear
命令下载这些类库并适当的作一些定制以实现自己需要的功能。PEAR 的出现大大提高了PHP 程序的开发效率和开发质量;比如我们可能经常使用到的邮件处理类库
《PHP 使用PEAR mail发送邮件》
PECL 是PHP 扩展库“PHP Extension Community Library”的缩写形式,官方网站为:https://pecl.php.net/
,PECL 可以看作PEAR 的一个组成部分,提供了与PEAR 类似的功能。不同的是PEAR仓库中所有的扩展都是用纯粹的PHP代码编写的,用户可以下载PEAR 扩展以后直接将扩展的代码 include
包含到自己的PHP 文件中使用。而PECL是使用C 语言开发的,通常用于补充一些用PHP难以完成的底层功能,往往需要重新编译或者在配置文件中设置后才能在用户自己的代码中使用。比如第三方扩展:swoole、libevent等这些扩展都是使用到了底层的开发。
通俗的表达就是:PEAR是PHP的上层扩展工具集,PECL是PHP的底层扩展工具集。它们都是为开发者提供编写好的函数或者类库,以便快速构建PHP项目。
Composer是php的包管理工具,优点在于仅需要提供一个composer.json文件,在这个配置文件中声明需要用到的三方库,并执行一个简单的命令就能将其依赖全部下载好。也方便项目的部署和发布,因为只需要提供一个composer.json就行了,还提供了自动加载的支持。这就涉及到php-fig组织的PSR-0规范了。
Packagist是主要的Composer存储仓库,Composer存储库基本上是软件包的来源:可以从中获取软件包的地方。Packagist的目标是成为每个人都使用的中央存储仓库。这意味着您可以自动require在那里找到任何可用的软件包,而无需进一步指定Composer在何处寻找该软件包。建议使用Composer的任何开源项目都在Packagist上发布他们的软件包。一个库不需要必须发布在Packagist上供Composer使用,但它可以使其他开发人员更快地发现和采用,应为开发者也不愿意去记住太多的仓库,只需要记住一个仓库就可以。
和其他框架的比较:Composer和pear功能基本上是一样的,但是Composer可能使用起来更加方便好用,pear差不多已经逐渐被遗忘了。