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

我经常想也许我们应该使用 . 。我没怎么用过ant,所以不太清楚什么是ant 除了像我们的安装脚本那样将文件从一个地方复制到另一个地方之外,还应该执行其他操作。您可以举例说明哪些更高级的用途,以帮助我理解为什么我们想要或不想集成 进入我们的流程?

有帮助吗?

解决方案

来自费德里科·卡涅鲁蒂 博客文章:

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

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

其他提示

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

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

我们使用phing来部署 语义天窗:

  • 生成用于分发的 zip 存档
  • 创造 包裹
  • 上传 压缩 到 SourceForge
  • 更新 梨通道 使用新的包文件
  • 将 reStructuredText 文档渲染为 html 文件并上传。目前与 exec 但我正在写一篇 单独的任务 为了它。

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

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

请参阅 构建.xml代码.

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

Ant 有更好的文档,包括一些不错的 o'reilly 书籍,并且它在 Java 领域已经很成熟,因此您可以避免以下问题:(1)“我们还没有将功能 X 复制到 phing”和 (2) 风险phing 项目即将终止。 这是 有关配置 PHPUnit 以与 ant 和 Cruisecontrol 配合使用的文章:没那么难。并且您可以免费获得 Eclipse 集成。

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top