php - PEAR 和 Composer 有什么区别?

标签 php package composer-php pear

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

最佳答案

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

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

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

This blog post 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

关于php - PEAR 和 Composer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199824/

相关文章:

php - 如何获取 URL 中的最后一个路径?

php - 如何在 PHP 中将数组从线性分布排序为正态分布?

javascript - 发送时如何在不打开新页面的情况下使用php/ajax发送表单

javascript - nodejs中的 `rc`文件是什么?

ssh - 使用 SSH 的 Composer 私有(private)存储库

php - 为什么我不能在 PHP 中比较这些数字?

python - 从同一级别的另一个模块导入 Python 模块

javascript - 获取最近更新的软件包

php - 如何授予 Composer 在 var/www/html 中创建文件夹的权限

php - 创建composer包时,我应该选择什么 "Package Type"