使用phing部署不同的环境

时间:2011-10-03 14:25:38

标签: php zend-framework deployment phing

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

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

有人建议如何使用不同的配置/设置文件部署到我们的生产环境中吗?我们宁愿将生产分支保留为单个分支,但不知何故将配置文件分开。我们使用zend框架,我知道配置文件中可以有的不同部分,但我们也有一个用于phing的设置文件。

我环顾四周,但我似乎找不到将命令行参数传递给phing的方法。这样的事情可能非常有用:

  phing -f build.xml production_live1

1 个答案:

答案 0 :(得分:11)

您可以使用-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>