2008-08-31 56 views
24

有没有人使用Phing来部署PHP应用程序,如果有的话,你如何使用它?我们现在有一个手写的“设置”脚本,我们在部署项目的新实例时运行。我们只是从SVN签出并运行它。它设置一些基本的配置变量,安装或重新加载数据库,并为站点实例生成一个v主机。你使用Phing吗?

我经常想,也许我们应该使用Phing。我没有使用过多的ant,所以我没有真正意识到Phing应该做什么,除了脚本将文件从一个地方复制到另一个地方,就像我们的安装脚本一样。有什么更先进的用途,您可以举例来帮助我理解为什么我们会或不想将Phing整合到我们的流程中。

回答

16

距离Federico Cargnelutti的blog post

功能包括文件转换(例如令牌 更换,XSLT转换, Smarty的模板转换),文件 系统操作,交互式建立 支持,SQL执行,CVS 操作,用于创建PEAR 包的工具等等。

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

3

我没有看到任何令人信服的理由去与phing。我的意思是,如果PHP程序员尝试重写Eclipse,“仅仅是因为”在PHP中编写Eclipse插件可能会更容易一些?我不这么认为。 (1)“我们还没有将特征X复制到phing”和(())中的问题, 2)phing项目已经死亡的风险。 Here's有关配置PHPUnit以使用ant和cruisecontrol的文章:并不难。你可以免费获得eclipse集成。

祝你好运!

+4

那么,重写Eclipse可能不是最好的主意,在PHP中使用Ant端口真的是个好主意。原因很简单:自定义任务可以在普通的旧PHP中完成(不是每个人都足够熟悉Java)。 建筑应用程序比常见的建筑应用程序涉及的自定义功能要求自动化,并且能够以您熟练的语言进行操作 - 对我而言,它可以被认为是一个很大的优点。 P.S.如果您使用的是Java,那么您可能应该看看Maven :)) – 2010-03-18 23:19:15

+0

Ant的文档并不比Phing更好。是的,Phing的文档缺乏更多的例子,但Ant也是如此。 – cweiske 2011-06-12 18:08:52

7

我从Ant转移到Phing'只是因为它是PHP。我使用它从不同的Subversion版本库导出,复制东西,构建不同的安装包等,所有这些都使用20行可重用的xml文件和一个具有项目特定内容的配置文件。没有办法,我可以用自定义脚本快速完成它。我还计划集成api文档生成和单元测试。爱它!

7

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

3

我们使用phing部署SemanticScuttle

  • 生成分布
  • zip压缩包创建PEAR
  • 上传zip到SourceForge上
  • 更新PEAR channel新软件包文件
  • 渲染将reStructuredText文档转换为html文件并上传。目前使用exec,但我正在为它编写separate task

上传zip文件,该通道通过rsync,这是不幸的是没有通过一个特殊的任务phing支持做 - 但使用exec总是可能的,很好地工作。

最后,它节省了大量时间,我们能够使用一个命令测试,打包和部署我们的应用程序(这给我们另一个点Joel Test)。没有它,我不想活下去。

请参阅build.xml code