Php 你用Phing吗?

Php 你用Phing吗?,php,deployment,build-process,build-automation,phing,Php,Deployment,Build Process,Build Automation,Phing,是否有人使用它来部署PHP应用程序,如果有,您如何使用它?目前,我们有一个手写的“设置”脚本,在部署项目的新实例时运行该脚本。我们只是从SVN签出并运行它。它设置一些基本配置变量,安装或重新加载数据库,并为站点实例生成一个v-host 我经常想也许我们应该使用。我没有太多地使用ant,所以我不知道除了编写脚本将文件从一个地方复制到另一个地方之外应该做什么,就像我们的安装脚本那样。您可以举例说明哪些更高级的用途来帮助我理解为什么我们会或不想集成到我们的流程中?来自Federico Cargnelu

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


我经常想也许我们应该使用。我没有太多地使用ant,所以我不知道除了编写脚本将文件从一个地方复制到另一个地方之外应该做什么,就像我们的安装脚本那样。您可以举例说明哪些更高级的用途来帮助我理解为什么我们会或不想集成到我们的流程中?

来自Federico Cargnelutti的:

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


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

我看不出有任何令人信服的理由使用Phing。我的意思是,PHP程序员是否应该尝试重写Eclipse“仅仅因为”用PHP编写Eclipse插件可能更容易?我不这么认为

Ant有更好的文档,包括一些很好的o'reilly书籍,而且它在Java世界中已经很成熟,因此您可以避免以下问题:(1)“我们还没有将feature X复制到phing”和(2)phing项目失败的风险。一篇关于配置PHPUnit与ant和cruisecontrol协同工作的文章:没那么难。您可以免费获得eclipse集成


祝你好运

我从Ant搬到Phing只是因为它是PHP。我使用它从不同的subversion存储库导出,复制内容,构建不同的安装包,等等,所有这些都有一个20行的可重用xml文件和一个包含项目特定内容的配置文件。我不可能用自定义脚本做得那么快。我还计划集成api文档生成和单元测试。爱死它了

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

我们使用phing部署:

  • 生成用于分发的zip存档
  • 创建包
  • 上传到SourceForge
  • 使用新的包文件更新
  • 将重构文本文档呈现为html文件并上载它们。目前使用的是
    exec
    ,但我正在为它编写一个新的应用程序
上传zip文件和频道是通过rsync完成的,不幸的是,phing通过特殊任务不支持rsync,但是使用
exec
总是可行的,而且效果很好

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


请参阅。

好吧,重写Eclipse可能不是最好的主意,在PHP中使用Ant端口确实是个好主意。原因很简单:定制任务,可以用普通的老PHP完成(不是每个人都对Java了解得足够多)。构建应用程序通常涉及到要求自动化的自定义功能,并且能够用您精通的语言实现这一点——好吧,对我来说,这可以被认为是一个很好的优势。另外,如果您使用的是Java,那么您可能应该看看Maven:))Ant的文档并不比Phing的好。是的,Phing的文档缺少更多的例子,但是Ant的也有。你不必用PHP重写Ant来构建自定义任务。您所需要的只是一个adaptertask或编译器,它允许您从ANT.UMMM执行PHP脚本。。。要使用ANT执行PHP脚本,您只需在PHP脚本顶部添加“#!/usr/local/bin/PHP”(或PHP可执行文件的位置)。然后,您只需从ANT调用脚本,就像在任何linux命令行操作中一样。通过这种方式,您可以解决任何自定义代码操作,包括来自PHP的SQL命令。