使用phing部署不同的环境


using phing to deploy different environments

我们正在使用phing来部署我们的php应用程序,我们在部署环境时遇到了一个小问题。

我们有2个不同的生产环境(每个都有不同的配置文件),和一个单独的测试环境。我们对测试环境没有问题,因为我们对测试环境有不同的分支。问题是我们在两个生产环境中使用同一个分支。

有谁对我们如何使用不同的配置/设置文件部署到我们的生产环境有建议吗?我们宁愿将生产分支作为一个单独的分支,但以某种方式将配置文件分开。我们使用zend框架,我知道在配置文件中可以有不同的部分,但我们也有一个用于phing的设置文件。

我四处看了看,但我似乎找不到一种方法来传递命令行参数给phing。像这样的东西可能真的很有用:

  phing -f build.xml production_live1

您可以使用-D设置自定义属性

phing -Denvironment=production_live1

您可以像访问其他属性一样在构建文件中访问它

${environment}

另一个解决方案是,为每个环境创建不同的构建文件,其中既包括"主"构建文件build.xml,又只包含差异。

phing -f production_live1.xml

(和在production_live1.xml

<project name="production_live1" basedir="." default="all">
  <import file="main.xml" />
  <!-- different tasks here -->
</project>