Phing和PHPUnderControl有什么区别?

时间:2008-09-26 19:05:38

标签: php continuous-integration phpunit cruisecontrol phing

我们目前使用手动设置和配置脚本以及手动连续集成脚本来构建和部署我们的应用程序。我正在考虑使用为此目的而设计的第三方系统来形式化这一点。

我之前看过Phing,我知道它基本上就像Ant。但是,我的Ant体验有点受限,所以对我没有多大帮助。 (我所做的大部分Java工作都是作为jar文件部署的。)

之前我已经研究过Cruise Control,我知道phpUnderControl是CC的插件。但是,Phing说它也适用于CC。所以我不清楚这里的重叠。我是否需要使用Phing和phpUnderControl来使用CruiseControl,还是它们相互排斥?

我真正需要的是:

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

现在,我们以这种或那种形式提供所有这些。但是,将它全部自动化并在一个过程中捆绑在一起会很不错。

3 个答案:

答案 0 :(得分:8)

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

我刚刚设置了CruiseControl和phpUnderControl,它一直很好用。它检查我的SVN,每当我们办理登机手续时都会通过phpDocumentor,PHP_CodeSniffer和PHPUnit运行它。因为它全部基于build.xml文件,你可以运行你想要的任何软件。

答案 1 :(得分:2)

我确信很多人会在我打字的时候说这个......但

我知道这不是PHP,但我们发现Capistrano只是这类工作的工作。它确实是一款出色的软件。

答案 2 :(得分:2)

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