2010-05-31 32 views
12

没有人知道的PHP的软件包管理器库(如例如易于或荫为Linux发行版)从PEAR?我正在开发一个应该包含用于模块管理的包管理系统的系统。我设法使用PEAR获得了一个可行的解决方案,但是使用PEAR客户端来管理PEAR安装并不是真正的最佳解决方案,因为它不是为此设计的。我将不得不修改/扩展它(例如,为了实施安装/升级操作或将PEAR特定文件(如lockfiles)移出系统根目录),特别是CLI客户端代码非常混乱且PHP4。因此,也许有人有一些建议PHP包管理

  • 一种替代PEAR客户端库,易于使用和扩展(服务器端有一些不错的实现比如Pirum和pearhub)
  • 为用PHP编写的完全不同的包管理系统(理想情况下,包括依赖性跟踪和不同频道)
  • 一些总体思路如何实现这样的PM系统

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

+1

我不建议你自己写的软件包管理器,除非它是学习的目的。例如,依赖管理并不容易。 – Artefacto 2010-05-31 18:40:01

+0

如果你发现一些有趣的东西,或者真的开始一个新的项目,让我们更新! ;)顺便说一句,我最近在这里看到一个关于“gnope”的问题(参见sourceforge)。没有对它进行测试,但似乎是一个图形包安装程序的种类,可能与PEAR相关,但具有可重定位的包。但还没有检查出来。 – mario 2010-05-31 23:27:35

+0

除了以下建议之外,我还看了symfony对PEAR安装程序的实现,这是一组扩展原始PEAR安装程序的类。看起来很简单,在库的顶部写一个自己的客户端实现。 – maff 2010-06-01 14:22:34

回答

11

Composer也。

+0

谢谢,现在肯定是现在的路,但当时并不存在:) – maff 2012-10-17 09:29:28

+0

只是为了评论这个 - 每个作曲家的网站,“作曲家不是一个包管理者,是的,它处理”包“或库,但是它可以在每个项目的基础上管理它们,并将它们安装到项目中的目录(例如供应商)中。默认情况下,它不会在全局安装任何东西,因此它是依赖项管理器。它很微妙,但不同。 (不过,作曲家是伟大的。) – JasCav 2014-02-14 18:55:11

+1

@JasCav嗯,这是一个项目级包管理器;) – 2014-02-16 07:30:11

3

你检查Maven for PHP?我只用Maven的在Java应用程序的情况下,但它肯定:

  • 易于扩展 - 它真的很容易实现的Maven插件
  • 管理依赖 - 区别编译,测试和运行时依赖(虽然编译/运行时区分在PHP中没有意义)。
  • 库是微不足道忍受 - Apache的mod_dav的会给你一个工作写库,但是你也有Nexus
  • 区分快照和稳定工件;允许针对何时检查新的快照构件以及哪些存储库获取每种类型的策略。

而且很多 - 很多 - 更多的事情。

+0

我只知道Maven与持续集成相结合,但它看起来非常强大 - 感谢这个建议,我一定会尝试一下。 – maff 2010-06-01 14:17:56

2

PEAR2 /梨为任意应用程序包管理构建。我相信它是在apt/yum架构之后建模的。

海尔吉 - 核心PEAR成员 - 介绍了一些在这里 - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead但文档是非常稳固太:http://pear.php.net/manual/en/pyrus.extending.installation.php

+0

PEAR2似乎遭受命名空间炎症。而不是那个好的。 – mario 2010-05-31 21:18:43

+0

我知道Pyrus并想过使用它,但不知何故,我没有设法找到你链接到的文档...对使用PEAR2系统有很大的帮助,谢谢。 – maff 2010-06-01 14:19:32

+0

@Mathias我期待在web2project中使用它来处理我们所有的模块管理问题。我喜欢事物的依赖管理方面。 – CaseySoftware 2010-06-02 16:31:10