【发布时间】:2011-02-26 01:33:09
【问题描述】:
有人知道 PEAR 的 PHP 包管理器库(例如 apt 或 yum 用于 linux 发行版)除了吗?我正在开发一个应该包含用于模块管理的包管理系统的系统。我设法使用 PEAR 获得了一个可行的解决方案,但是将 PEAR 客户端用于管理 PEAR 安装之外的任何其他事情并不是真正的最佳解决方案,因为它不是为此而设计的。我将不得不修改/扩展它(例如,实现安装/升级操作或将 PEAR 特定文件(如锁文件)从系统根目录移开),尤其是 CLI 客户端代码非常混乱且 PHP4.所以也许有人有一些建议
- 用于易于使用和扩展的替代 PEAR 客户端库(服务器端有一些不错的实现,例如 Pirum 和 pearhub)
- 用于用 PHP 编写的完全不同的包管理系统(理想情况下包括依赖项跟踪和不同的渠道)
- 关于如何实施这样一个 PM 系统的一些一般性想法(是的,我仍在修改从头开始实施这样一个系统的想法)
我知道像 Magento 和 symfony 这样的大型系统使用 PEAR 作为他们的 PM。 Magento 使用原始 PEAR 客户端的破解版本(我想避免),symfony 的实现似乎与框架非常集成,但至少从头开始编写客户端将是一个很好的起点。无论如何,如果有人有建议:请:)
【问题讨论】:
-
我不建议你自己写一个包管理器,除非是为了学习。例如,依赖管理并不是那么容易做到的。
-
如果您发现了一些有趣的东西,或者真正开始一个新项目,请及时通知我们! ;) 顺便说一句,我最近在这里看到了一个关于“gnope”的问题(参见 sourceforge)。未对其进行测试,但似乎是某种图形包安装程序,可能与 PEAR 相关,但带有可重定位的包。但还没有真正检查过。
-
除了以下建议之外,我还查看了 symfony 的 PEAR 安装程序实现,它是一组扩展原始 PEAR 的类。在库之上编写自己的客户端实现似乎很简单。
标签: php pear package-managers