我们使用Phing吗?

时间:2020-03-05 18:45:36  来源:igfitidea点击:

是否有人使用Phing部署PHP应用程序?如果是,我们如何使用它?当前,我们在部署项目的新实例时都会运行一个手写的"设置"脚本。我们只是从SVN签出并运行它。它设置一些基本配置变量,安装或者重新加载数据库,并为站点实例生成一个虚拟主机。

我经常以为也许我们应该使用Phing。我没有使用太多蚂蚁,所以除了对脚本将文件从一个地方复制到另一个地方进行脚本编写(就像我们的设置脚本所做的那样)之外,我对Phing应该做的事情没有真正的了解。我们可以举出一些更高级的用法示例,以帮助我理解为什么或者不希望将Phing集成到我们的流程中。

解决方案

回答

来自Federico Cargnelutti的博客文章:

Features include file transformations (e.g. token
  replacement, XSLT transformation,
  Smarty template transformations), file
  system operations, interactive build
  support, SQL execution, CVS
  operations, tools for creating PEAR
  packages, and much more.

当然,我们可以为上述所有内容编写自定义脚本。但是,使用像Phing这样的专用构建工具可以为我们带来很多好处。我们将使用一个经过验证的框架,因此我们不必担心设置"基础结构",而可以专注于我们需要编写的代码。使用Phing还可以使新成员加入团队时变得更加容易,如果他们以前使用过Phing(或者Phing所基于的Ant),他们将能够了解发生了什么。

回答

我没有发现任何令人信服的理由来进行网络钓鱼。我的意思是,PHP程序员应该"仅仅因为"用PHP编写Eclipse插件可能更容易而尝试重写Eclipse吗?我不这么认为。

Ant有更好的文档,包括一些不错的书,并且在Java领域中根深蒂固,因此避免了以下问题:(1)"我们尚未将功能X复制到phing"和(2) phing项目的失败。这是一篇有关配置PHPUnit与ant和cruisecontrol一起使用的文章:并不难。而且我们可以免费获得eclipse集成。

祝你好运!

回答

我从Ant移到Phing,只是因为它是PHP。我用它来从不同的Subversion存储库中导出,复制内容,构建不同的安装包,等等,所有这些都包含20行可重用的xml文件和包含项目特定内容的配置文件。我无法使用自定义脚本快速地做到这一点。我还计划集成api文档生成和单元测试。爱它!

回答

对我来说,有说服力的答案是phing可以理解PHP类路径。蚂蚁没有。我不想拥有一个完整的exec命令的ant build.xml文件。我碰巧主要是一名Java程序员,仍然使用phing。这是工作的最佳工具。