PHP包管理器

时间:2010-05-31 17:18:06

标签: php pear package-managers

有没有人知道PHP的包管理器库(例如,对于Linux发行版的apt或yum)分开来自PEAR?我正在开发一个应该包含用于模块管理的包管理系统的系统。我设法使用PEAR获得了一个可行的解决方案,但是除了管理PEAR安装之外,使用PEAR客户端并不是最佳解决方案,因为它不是为此而设计的。我将不得不修改/扩展它(例如,实现安装/升级操作或将PEAR特定文件(如锁定文件)移离系统根目录,尤其是CLI客户端代码非常混乱和PHP4。所以也许有人有一些建议

  • 用于替代PEAR客户端库,它易于使用和扩展(服务器端有一些很好的实现,如Pirum和pearhub)
  • 用于用PHP编写的完全不同的包管理系统(理想情况下包括依赖性跟踪和不同的通道)
  • 关于如何实施这样一个PM系统的一般性想法(是的,我仍在修改从头开始实施这样一个系统的想法)

我知道像Magento和symfony这样的大型系统使用PEAR作为他们的PM。 Magento使用原始PEAR客户端的黑客版本(我想避免),symfony的实现似乎与框架完全集成,但至少从头开始编写客户端是一个很好的起点。无论如何,如果有人有建议:请:)

3 个答案:

答案 0 :(得分:12)

还有Composer

答案 1 :(得分:3)

您检查了Maven for PHP吗?我只在Java应用程序的上下文中使用了Maven,但肯定是:

  • 易于扩展 - 实现Maven插件非常容易
  • 管理依赖项 - 区分编译,测试和运行时依赖项(尽管编译/运行时区分在PHP中没有意义)。
  • 存储库很简单 - 带有mod_dav的Apache将为您提供可运行的可写存储库,但您也有Nexus
  • 区分快照与稳定工件;允许多个策略用于何时检查新的快照工件以及从哪个存储库获取每种类型。

还有很多东西。

答案 2 :(得分:2)

PEAR2 / Pyrus 为任意应用程序的包管理而构建的。我相信它是以apt / yum架构为模型的。

Helgi - 核心PEAR成员 - 在此处涵盖部分内容 - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead但文档也非常可靠:http://pear.php.net/manual/en/pyrus.extending.installation.php