PEAR和Composer有什么区别?

54

PEAR 用于安装 PHP 软件包,而 Composer 也用于同样的目的。我认为 Composer 更好地处理依赖关系,但这是唯一的区别吗?有人可以解释一下这两个包管理器之间的区别,并告诉我何时使用它们吗?


20
很遗憾这个问题被关闭了。 - Adam
9
@Adam 这个问题已经三年了,但我投票支持重新开放。这是一个好问题。为了让其他人也能发现它,你可能考虑重新开放这个问题。 - Blackbam
1个回答

63

也许现在将PEAR视为过时还为时过早,但我认为它不久就会过时。Composer正在蓬勃发展且成熟,拥有许多包和活跃的开发。因此,在PHP中使用Composer作为管理工具的标准可能更好。

对于包维护者来说,使用PEAR更加麻烦。因此,PEAR上的很多代码已经过时了。开发人员必须在发布到PEAR之前先让其包通过“PEAR审核”,因此与Composer提供的包数相比,可用的包数量较少。另外,在PEAR中没有办法为一个单独的项目安装包。所有的包都是全局安装的。而通过Composer,您可以按项目或全局安装包。另外,PEAR缺乏依赖项管理,这实际上应该是一个包管理器应该做好的一件事情。

您可以使用PEAR安装PECL扩展,但使用Composer则无法做到。但是,pickle使用Composer并允许您在composer.json文件中定义本机PHP扩展的依赖项。pickle项目目前正在经历相当大的开发,并且尚不成熟。

这篇博客文章由Fabien Potencier撰写,可能有点主观,但我认为它非常正确。如果你有选择的话,请选择Composer,这样PEAR就可以安心离开。即使你询问PEAR维护人员,大多数人也会告诉你Composer是未来的方向,尽管一些人可能仍然对Pyrus抱有希望。(这本来是改进PEAR的,但被后来爆炸性的Composer流行所淹没了。)

顺便提一下,您也可以使用Composer安装PEAR包,请查看Composer文档

另请参见:
[1] PHP包管理信息幻灯片


6
现今,许多 PEAR 包都可以通过 packagist(官方仓库)在 Composer 上获取。我会尽力保证翻译质量,如有不妥之处请您谅解并指出。 - jchook
“pecl” 还在使用吗?我安装了 “xdebug”,在 Debian 上可以选择 “pecl” 和 “apt”。你猜我用了哪个。 - Timo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接