25

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

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

4

5 回答 5

16

来自 Federico Cargnelutti 的博客文章

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

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

于 2008-08-31T08:22:20.370 回答
8

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

于 2009-06-08T22:27:15.860 回答
7

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

于 2009-04-26T09:10:08.570 回答
3

我们使用 phing 来部署SemanticScuttle

  • 生成用于分发的 zip 存档
  • 创建PEAR
  • 上传zip到 SourceForge
  • 使用新的包文件更新PEAR 通道
  • 将 reStructuredText 文档渲染成 html 文件并上传。目前有,exec但我正在为它编写一个单独的任务

上传 zip 文件和频道是通过 rsync 完成的,不幸的是,通过特殊任务 phing 不支持这一点 - 但exec始终可以使用并且效果很好。

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

请参阅build.xml 代码

于 2011-06-12T17:54:03.473 回答
2

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

Ant 有更好的文档,包括一些不错的 o'reilly 书籍,并且它在 Java 世界中非常成熟,因此您可以避免 (1) “我们还没有将特性 X 复制到 phing”和 (2) 风险的问题phing 项目即将死去。是一篇关于配置 PHPUnit 以使用 ant 和 Cruisecontrol 的文章:没那么难。而且您可以免费获得 Eclipse 集成。

祝你好运!

于 2008-10-24T21:05:07.567 回答