Phing 和 PHPUnderControl 有啥区别?

Posted

技术标签:

【中文标题】Phing 和 PHPUnderControl 有啥区别?【英文标题】:What's the difference between Phing and PHPUnderControl?Phing 和 PHPUnderControl 有什么区别? 【发布时间】:2010-09-13 13:38:55 【问题描述】:

我们目前使用手动设置和配置脚本以及手动持续集成脚本来构建和部署我们的应用程序。我正在考虑通过为这些目的设计的第三方系统将其正式化。

我之前研究过 Phing,我知道它基本上就像 Ant。但是,我的 Ant 经验有些有限,所以这对我没有多大帮助。 (我所做的大部分 Java 工作只是部署为 jar 文件)。

我之前研究过Cruise Control,了解到phpUnderControl是CC的一个插件。但是,Phing 说它也适用于 CC。所以我不清楚这里的重叠。我是否需要 Phing 和 phpUnderControl 才能与 CruiseControl 一起使用,还是它们是互斥的?

我真正需要的是可以:

从 SVN 查看源代码 从 SQL 文件安装数据库 从一系列模板和一个ini文件生成一些本地配置文件 运行我们所有的单元测试(目前是 ST,但很容易转换为 PHPUnit)并在任何测试中断时向开发团队发送电子邮件(当然还有堆栈跟踪) 为应用程序生成 API 文档并将其放在某处 运行测试覆盖率报告

现在,我们几乎以一种或另一种形式拥有所有这些。但是,最好将所有这些自动化并捆绑在一个流程中。

【问题讨论】:

【参考方案1】:

phing 几乎是用 PHP 编写的 ant,其中 phpUnderControl 向 CruiseControl 添加了对 PHP 项目的支持,并在后端使用 phing 或 ant 来解析 build.xml 文件并运行命令。

我刚刚设置了 CruiseControl 和 phpUnderControl,它运行良好。它检查我的 SVN,每当我们检查时通过 phpDocumentor、PHP_CodeSniffer 和 PHPUnit 运行它。由于它完全基于 build.xml 文件,您可以通过它运行几乎任何您想要的软件。

【讨论】:

你不想举个例子吧? :) 我愿意,但我没有我的构建文件了:P 很多人都在考虑使用 Jenkins:jenkins-php.org 太棒了——不确定我是否应该在这里问这个问题,但也许你可以对 Jenkins、PhpUnderControl 和 Phing 进行编辑或其他信息?【参考方案2】:

我相信很多人会在我输入这个的时候说这个,但是......

我知道这不是 PHP,但我们正在寻找 Capistrano 只是这种事情的工作。它确实是一款出色的软件。

【讨论】:

【参考方案3】:

我们一直在使用 Phing,设置它的成本非常低;即使您不了解 ANT,它也很容易学习。我对 CruiseControl 的体验非常糟糕(不稳定 - 随机下降) - 所以我喜欢 Phing 的简单性。另外,它可以使用 PHP 轻松扩展(如果您有一个自定义任务,他们不支持开箱即用)。

【讨论】:

以上是关于Phing 和 PHPUnderControl 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

是否有可用于 phing 的 ssh 和 scp 任务?

你可以使用ANT构建文件作为Phing构建文件吗?

使用 phing 将所有数组值附加到另一个属性

PHP 中持续集成的构建工具(Ant、Ivy、Maven、Phing?)

SSH进入服务器,sudo稍后使用Phing

PEAR 包通常安装在哪里?