【问题标题】:using phing to deploy different environments使用phing部署不同的环境
【发布时间】:2011-11-29 23:36:43
【问题描述】:

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

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

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

我环顾四周,但似乎找不到将命令行参数传递给 phing 的方法。像这样的东西可能真的很有用:

  phing -f build.xml production_live1

【问题讨论】:

    标签: php zend-framework deployment phing


    【解决方案1】:

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

    【讨论】: