2011-10-03 160 views
4

我們使用phing來部署我們的php應用程序,並且在部署我們的環境時遇到了一些小問題。使用phing部署不同的環境

我們有2個不同的生產環境(每個環境都有不同的配置文件)和一個單獨的測試環境。我們對測試環境沒有問題,因爲我們在測試環境中有不同的分支。問題是我們在生產環境中使用同一個分支。

任何人都有關於如何使用不同的配置/設置文件部署到我們的生產環境的建議?我們寧願將生產分支保留爲單個分支,但以某種方式分離配置文件。我們使用zend框架,並且我知道配置文件中的不同部分,但我們也有一個phing設置文件。

我環顧四周,但我似乎無法找到一種方法將命令行參數傳遞給phing。這樣的事情可能是真的有用:

phing -f build.xml production_live1 

回答

11

您可以使用-D設置自定義屬性

phing -Denvironment=production_live1 

您可以在構建文件中訪問它像所有其他財產

${environment} 

另一個解決方案是,您爲每個環境創建不同的構建文件,這兩個文件都包含「主」構建文件build.xml,並且只包含th e差異。

phing -f production_live1.xml 

(和production_live1.xml

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

哇,這正是我所期待的。謝謝! – aporat