PEAR 和 Composer 有什么区别?

What is the difference between PEAR and Composer?

PEAR is used to install a PHP software package and Composer 用于同一件事。我相信 Composer 可以更好地处理依赖关系,但这是唯一的区别吗?任何人都可以解释这两个包管理器之间的区别并告诉我什么时候使用哪个吗?

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

使用 PEAR 对包维护者来说更麻烦。因此,PEAR 上的许多代码都已过时。开发人员需要先获取它的包 'PEAR-reviewed' 才能在 PEAR 上发布,因此与包的数量 available in Composer 相比,可用的包很少。此外,无法在 PEAR 中为单个项目安装包。所有包都是全局安装的。使用 Composer,您可以在每个项目的基础上 全局安装一个包。好吧,然后是 PEAR 中缺乏依赖管理,坦率地说,这应该是包管理器擅长的一件事。

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

This blog post by Fabien Potencier might be a bit opinionated, but I think it is quite right. If you have an option, choose Composer so PEAR can die in peace. Even when you ask the PEAR maintainers most will tell you that Composer is the way forward, although some might still have their hopes for Pyrus。 (这本打算对 PEAR 进行改进,但有点被 Composer 的爆炸式流行所淹没。)

顺便说一下,您也可以使用 Composer 安装 PEAR 包,请参阅 the Composer documentation

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