PEAR 和 Composer 有啥区别?

Posted

技术标签:

【中文标题】PEAR 和 Composer 有啥区别?【英文标题】:What is the difference between PEAR and Composer?PEAR 和 Composer 有什么区别? 【发布时间】:2016-03-15 23:11:50 【问题描述】:

PEAR 用于安装 php 软件包,Composer 用于同样的事情。我相信 Composer 可以更好地处理依赖关系,但这是唯一的区别吗?谁能解释这两个包管理器之间的区别并告诉我何时使用哪个?

【问题讨论】:

很遗憾这个问题已关闭。 @Adam 已经三岁了,但是我投票决定重新开放。这是一个很好的问题。如果其他人偶然发现它,您也可以考虑重新打开这个问题。 【参考方案1】:

将 PEAR 视为已弃用可能还为时过早,但我相信它不会花很长时间。 Composer 正在蓬勃发展和成熟,有很多软件包和积极的开发。因此,在 PHP 中使用 Composer 作为the standard for package 管理工具可能会更好。

对于包维护者来说,使用 PEAR 比较麻烦。因此 PEAR 上的很多代码都已经过时了。开发人员需要在 PEAR 上发布之前对其包进行“PEAR-reviewed”,因此与包的数量available in Composer 相比,可用的包很少。此外,没有办法在 PEAR 中为单个项目安装包。所有软件包都全局安装。使用 Composer,您可以为每个项目安装一个包全局。好吧,PEAR 中缺乏依赖管理,坦率地说,这应该是包管理器做得好的一件事。

可以用 PEAR 而不是 Composer 做的一件事是安装 PECL extensions。然而,pickle 使用 Composer 并允许您在 composer.json 文件中定义原生 PHP 扩展依赖项。 pickle 项目目前正在经历相当多的发展,还不应该被认为是成熟的。

This blog post by Fabien Potencier 可能有点固执己见,但我认为这是完全正确的。如果您有选择,请选择 Composer,这样 PEAR 就可以安详地死去。即使当你ask the PEAR maintainers 时,大多数人都会告诉你 Composer 是前进的方向,尽管有些人可能仍然对Pyrus 抱有希望。 (这是为了对 PEAR 进行改进,但在 Composer 的爆炸式流行中被埋没了。)

顺便说一句,你也可以使用 Composer 安装 PEAR 包,见the Composer documentation。

另请参阅: [1]Informative slide deck about PHP package management

【讨论】:

现在,许多 PEAR 包都可以通过 packagist(官方 repo)在 composer 上获得。

以上是关于PEAR 和 Composer 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

php三种工具pecl pear composer的区别

通过 pear 或 composer 安装 phpUnit

vue.js:<component :is="comp-name"/> 和 <div :is="comp-name"/> 有啥区别?

使用 Composer 或 apt 安装 swiftmailer 有啥区别? [复制]

Composer介绍

SQL 和 SQL*Plus 有啥区别? [关闭]